我有由 ADO 实体数据模型生成的模型,例如:
public partial class Category
{
public Category()
{
}
public int CategoryId { get; set; }
public string Name { get; set; }
}
现在我添加了一个属性
public partial class Category
{
public int EventsCount { get; set; }
}
现在我正在尝试通过以下方式进行映射://这是有效的查询
List<Category> retVal = db.Database.SqlQuery<Category>(
//retVal = db.Categories.SqlQuery(
@"SELECT c2.CategoryId,c2.Name,c1.EventsCount AS EventsCount FROM (
SELECT c.CategoryId, COUNT(c.CategoryId) AS EventsCount FROM Category c
JOIN EventCategory ec ON ec.CategoryId = c.CategoryId
JOIN (SELECT * FROM EVENT WHERE EventDateTime > DATEADD(D, 0, DATEDIFF(D, 0, GETDATE()))) e ON e.EventId = ec.EventId
WHERE c.ImportedFrom IS NULL
GROUP BY c.CategoryId) c1
join Category c2 ON c1.CategoryId = c2.CategoryId").ToList();
我在 Management Studio 上执行原始 sql 得到的实际数据
但EventCounts
总是0
与实体框架映射,
但是如果我用不同的模型映射模型EventsCount
,那么它就会被映射。
喜欢:
public partial class Category
{
public Category()
{
}
public int CategoryId { get; set; }
public string Name { get; set; }
public int EventsCount { get; set; }
}
现在已经映射了所有列,这里有什么想法,为什么实体框架不映射部分模型?