WCF是否可以传输虚拟属性?
我的项目中有这些课程:
[DataContract]
class Country
{
[Key, DataMember] public int CountryId { get; set; }
[DataMember] public string CountryName { get; set; }
}
[DataContract]
class Employee
{
[Key, DataMember] public int EmployeeId { get; set; }
[DataMember] public string EmployeeName { get; set; }
[DataMember] public int ResidingInCountryId { get; set; }
[ForeignKey("ResidingInCountryId"), DataMember]
public virtual Country ResidenceCountry { get; set; }
}
我的WCF上已经有Include
:
db.Employees.Include("ResidenceCountry").Where(x => x.EmployeeId == 1);
但我收到了这个错误:
基础连接已关闭: 连接已关闭 出乎意料。
如果我不使用virtual
如果它对任何人感兴趣,使用virtual
和Fetch
组合时我在NHibernate上没有遇到任何错误
[更新时间:2011-05-12 3:05 PM]
我在这里解决了我的问题:http://www.gavindraper.co.uk/category/entity-framework/
唯一的区别是我使用this.Configuration.ProxyCreationEnabled = false;
代替this.ContextOptions.ProxyCreationEnabled = false;
。我正在使用Entity Framework 4.1
答案 0 :(得分:9)
让问题者本人(@GreenLantern)给出的解决方案更清楚(也许是问题)给在这篇文章中结束的任何人......
问题:序列化具有虚拟属性的对象
解决方案:将您的DBContext对象的Configuration.ProxyCreationEnabled设置为false。
var dbContext = new YourEntityModelObject();
dbContext.Configuration.ProxyCreationEnabled = false;