次のような ADO Entity Data Model によって生成されたモデルがあります。
public partial class Category
{
public Category()
{
}
public int CategoryId { get; set; }
public string Name { get; set; }
}
今、私は1つのプロパティを追加しました
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
Entity Framework マッピングを使用します。
しかし、異なるモデルを持つモデルをマップEventsCount
すると、マップされます。
お気に入り:
public partial class Category
{
public Category()
{
}
public int CategoryId { get; set; }
public string Name { get; set; }
public int EventsCount { get; set; }
}
今、すべての列がマップされています.ここで何か考えがあります.なぜエンティティフレームワークは部分モデルをマッピングしないのですか?