1
我想使用DbSet.SqlQuery(字符串,对象[])来返回从DbSet中的实体派生的实体。用DbSet.SqlQuery检索派生实体
这应该根据文档(https://msdn.microsoft.com/en-us/library/system.data.entity.dbset.sqlquery(v=vs.113).aspx)是可能的:
创建一个原始的SQL查询,将在此集中返回的实体。默认情况下,返回的实体由上下文进行跟踪;这可以通过在返回的DbRawSqlQuery上调用AsNoTracking来改变。请注意,返回的实体始终是此集合的类型,永远不是派生类型。如果查询的表格可能包含其他实体类型的数据,则必须正确编写SQL查询以确保只返回正确类型的实体
这可能吗?我还没有找到办法做到这一点。
我试过使用Database.SqlQuery,但返回的实体没有被跟踪,并没有设置其导航属性(我需要)。
我的代码看起来是这样的:
public class Notification
{
...
}
public class PageNotification : Notification
{
...
}
public class SystemNotification : Notification
{
...
}
public class MyContext : DbContext
{
public DbSet<Notification> Notifications { get; set; }
}