C# 具有只读集属性的DbContext

C# 具有只读集属性的DbContext,c#,entity-framework,dbcontext,C#,Entity Framework,Dbcontext,我正在阅读这篇文章,并试图弄清楚如何创建私有setter(文章DbContext中带有只读集属性的部分就在摘要的前面)。您将如何创建私有setter?我用不同的方法玩,但似乎什么都不管用。我这样做是因为我需要根据查询对原始表进行分组,因为原始表是一个堆,并且我需要实体的主键。因此,每当客户机请求此表时,它就已经分组了。甚至不确定这是不是正确的方法。谢谢 编辑:抱歉说得含糊不清。我先做代码。例如,存在一个包含JobNbr、Qty和Date的SQL表,我需要按JobNumber进行分组,按Qty求和

我正在阅读这篇文章,并试图弄清楚如何创建私有setter(文章DbContext中带有只读集属性的部分就在摘要的前面)。您将如何创建私有setter?我用不同的方法玩,但似乎什么都不管用。我这样做是因为我需要根据查询对原始表进行分组,因为原始表是一个堆,并且我需要实体的主键。因此,每当客户机请求此表时,它就已经分组了。甚至不确定这是不是正确的方法。谢谢

编辑:抱歉说得含糊不清。我先做代码。例如,存在一个包含JobNbr、Qty和Date的SQL表,我需要按JobNumber进行分组,按Qty求和并取最早的到期日期,这将是我的实体,因为该表没有主键。我现在这样做的方式给出了我在DbContext类中创建的一个方法的以下错误。我有一个EntityTypeConfiguration类。我在那个班上做这个吗

编辑::您可能想知道我为什么要这样做。基本上,我需要从堆中获取数据并将其保存到另一个数据库中。我最初的方法是
database.SqlQuery()
从堆中获取分组行,但有时我有太多的参数用于执行sql。因此,我决定为分组查询创建一个实体,而不跟踪更改(因为我所做的只是从表中读取数据并保存到另一个数据库)。请参阅我的帖子,了解我的问题。我知道绕过它的唯一方法是创建一个实体(即使在本例中,实体是一个查询而不是一个表)

实体或复杂类型 "不可能 在LINQ to实体查询中构造


哪种方法?代码优先?先做模特?首先是数据库?我已经读了几遍这个问题,但我仍然不知道你在问什么。基本上,我需要拿一个表,运行一个查询来对JobNbr进行分组,这样它才是关键,我可以将它作为一个实体使用。我可以用SQL创建一个视图,但我不想这样做,因为数据库在另一台服务器上。如何设置上下文,以便在放置context.Entity时,返回的实体是分组查询?我将其设置为一个实体,因为EF以任何其他方式发送sp_executesql,并且我的参数超过了字符限制。看到了吗?我不相信你想做的是可能的。我认为你是对的。但是,我想我可以将其设置为一个实体,然后在单独的查询中执行组。我的印象是,如果我指定JobNbr作为键列,如果在设置它时EF不是唯一的,那么它将具有适合性。然而,EF似乎并不在意,因为我没有跟踪实体,我在服务中执行聚合,所以我也不介意。