Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.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# 在WCF服务中使用实体框架类而不重新创建模型_C#_Wcf_Entity Framework - Fatal编程技术网

C# 在WCF服务中使用实体框架类而不重新创建模型

C# 在WCF服务中使用实体框架类而不重新创建模型,c#,wcf,entity-framework,C#,Wcf,Entity Framework,我有一个包含edmx的dll项目。在同一个解决方案中,我有一个WCF库项目,在这个项目中有一个接口和一个类来保存所有OperationContracts。我注意到,在模型中只有一个表的情况下,这非常有效。一旦我向edmx添加了另一个与第一个表有关系的表,服务就会中断。所以,我已经缩小了我收到的错误(在一般意义上)是由于我的EF类型之间的关系,更具体地说是由于每个类中声明关系的方式。。。所以基本上我只是进去,在我的个人课上发现了以下几点: public int PersonId { get; se

我有一个包含edmx的dll项目。在同一个解决方案中,我有一个WCF库项目,在这个项目中有一个接口和一个类来保存所有OperationContracts。我注意到,在模型中只有一个表的情况下,这非常有效。一旦我向edmx添加了另一个与第一个表有关系的表,服务就会中断。所以,我已经缩小了我收到的错误(在一般意义上)是由于我的EF类型之间的关系,更具体地说是由于每个类中声明关系的方式。。。所以基本上我只是进去,在我的个人课上发现了以下几点:

public int PersonId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string DisplayName { get; set; }
public bool IsEmployee { get; set; }
public Nullable<int> OrganizationId { get; set; }
public virtual ICollection<Contact> Contacts { get; set; }
public int PersonId{get;set;}
公共字符串名{get;set;}
公共字符串LastName{get;set;}
公共字符串DisplayName{get;set;}
公共布尔值是雇员{get;set;}
公共可为空的OrganizationId{get;set;}
公共虚拟ICollection联系人{get;set;}
因此,这导致我(我不知道为什么)尝试简单地删除与联系人和POOF的关系上的虚拟关键字!!!!像magic一样,该服务启动并运行起来,就像单人表是模型中唯一的类一样。 所以我的问题是。。。为什么?

为什么当我删除virtual关键字时,WCF服务会突然起作用?这对于人与人之间的关系意味着什么

我有一个理论认为,之所以会发生这种情况,是因为现在通过删除虚拟关键字,我以某种方式打破了个人和联系人之间的联系,使得服务不再试图获取更多的信息,而不仅仅是个人。。。这样就不会破裂

我为我在这件事上的幼稚道歉,但如果能澄清一点,我将不胜感激。
提前感谢。

当您查询集合时,virtual关键字告诉Entity Framework它可以(如果您也这么说的话)使用延迟加载来加载集合中的元素


因此,删除virtual关键字意味着延迟加载将不再有效。但如果你对此没意见,那就太好了。

真的吗?!??!我一直把头撞在墙上,想知道如何轻松地从EF->WCF。。。。我所要担心的就是不再有懒散的加载。。。。这真是个好消息!!!!哈哈,谢谢你!!!