我首先使用Entity Framework和数据库。我有一个带有entites的edmx文件,其中包括Order和Device。
我做这样最简单的查询。
var o = db.Orders.First();
var d = db.Device.First();
如果我在这些行之后放置断点并为o和d添加监视,我可以看到o的类型为“System.Data.Entity.DynamicProxies.Order_F41BB20DDE174FDA86E0D7716990689D9E5D9260345B31726A97A13750358370”,而d的类型为“MyNamespace.Device” ”
为什么没有为Device生成dynamicproxy?
由于没有为Device生成代理,因此延迟加载不起作用。
我的设备类如下所示:
public partial class Device
{
protected Device()
{
this.ActiveLoadingComputers = new HashSet<ActiveLoadingComputer>();
this.LoadReports = new HashSet<LoadReport>();
}
public int Id { get; protected set; }
public string Name { get; set; }
public Nullable<System.DateTime> Updated { get; set; }
public Nullable<int> LoadingPlace_Id { get; protected set; }
internal virtual ICollection<ActiveLoadingComputer> ActiveLoadingComputers { get; private set; }
internal virtual ICollection<LoadReport> LoadReports { get; private set; }
internal virtual LoadingPlace LoadingPlace { get; private set; }
}
它还有另一个部分定义。
public partial class Device
{
public Device(string name) : this()
{
Name = name;
}
}
答案 0 :(得分:0)
这是由于导航属性的set访问器的私有说明符。