Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架:较大实体的子集实体_C#_Linq To Entities_Entity_Subset - Fatal编程技术网

C# 实体框架:较大实体的子集实体

C# 实体框架:较大实体的子集实体,c#,linq-to-entities,entity,subset,C#,Linq To Entities,Entity,Subset,所以基本上我有一个叫做Comment的表。在那张桌子上我有三个字段 身份证 头衔 正文 我已经为表创建了一个Entity对象,它映射了所有三个字段,但我现在想要的是另一个名为CommentHeader的实体,它只映射ID和标题。出于速度原因,我只想加载所有评论的标题,而不是文本。那么最好的方法是什么呢 我不是在寻找带有var对象的Select语句。我可以自己解决这个问题,我真的不喜欢这个解决方案,因为我更愿意把它抽象到实体对象后面 我尝试了一个显而易见的解决方案,就是复制原始实体对象并从中删

所以基本上我有一个叫做Comment的表。在那张桌子上我有三个字段

  • 身份证
  • 头衔
  • 正文
我已经为表创建了一个Entity对象,它映射了所有三个字段,但我现在想要的是另一个名为CommentHeader的实体,它只映射ID和标题。出于速度原因,我只想加载所有评论的标题,而不是文本。那么最好的方法是什么呢

我不是在寻找带有var对象的Select语句。我可以自己解决这个问题,我真的不喜欢这个解决方案,因为我更愿意把它抽象到实体对象后面

我尝试了一个显而易见的解决方案,就是复制原始实体对象并从中删除文本。这导致了一个错误,因为只有一个实体可以无条件映射到一个表。听起来我别无选择,只能使用Select语句。我只是想在做蠢事之前确认一下


(顺便说一句,为了简单起见,本例只有三个字段。假设标题中可能有更多字段。这是我不想将select与var对象一起使用的主要原因,因为它不只是一个字段,还可能是一整组字段)。

最简单的方法可能是创建一个视图(“CommentHeaders”)在数据库中,仅从注释表中选择ID和标题。然后更新模型并添加视图,这将基于这些列创建新实体。

最简单的方法可能是创建视图(“CommentHeaders”)在只从注释表中选择ID和标题的数据库中。然后更新您的模型并添加视图,这将基于这些列创建一个新实体。

作为对此的更新。我发现的另一个解决方案是延迟加载标量属性。不幸的是,EF还不支持延迟加载属性,因此这是唯一的解决方案k当前完成。如果您正在创建的第二个类与第一个类非常相似,则此方法是最好的。在这种情况下,我根本不会创建第二个类。作为对此的更新。我发现的另一个解决方案是延迟加载标量属性。不幸的是,EF还不支持延迟加载属性,因此这就是当前的技巧如果你创建的第二个类与第一个类非常相似,那么这个方法是最好的。在这种情况下,我根本不会创建第二个类。