而不是必须在每个查询上执行以下操作,有没有办法在全局设置该值?模型视图中有一个延迟加载设置,但似乎没有ProxyCreation的设置.
using (var context = new LabEntities())
{
**context.Configuration.ProxyCreationEnabled = false;**
var Query = from s in context.EAssets
.Include("Server").Include("Type").Include("Type.Definition")
where (s.Type.Definition.b_IsScannable == true) &&
(s.Server.s_Domain == Environment.UserDomainName || s.Server.s_Domain == null)
select s;
var Entities = Query.ToList();
}
Run Code Online (Sandbox Code Playgroud)
我不完全理解此选项的好处,但我知道,在Visual Studio中的标签我毫无意义的串行后缀的所有对象,并使用调试器的不合理使.
我已经在网上寻找可以帮助我解决令我困惑的设计问题的信息.我是复杂的继承情况的新手,所以我的解决方案实际上只能植根于更好的设计中.但是在试图找出我的设计应该是什么时,我一直认为我真的只需要继承超过1个基类.
我的具体案例涉及资产和不同类型的资产.
从资产开始......
每个PhysicalDevice都是一个资产
每个VirtualDevice都是一个资产
每个服务器都是一个资产
每个PhysicalServer都需要同时是PhysicalDevice和Server
每个VirtualServer都需要同时是VirtualDevice和Server
每个NetDevice都是PhysicalDevice
每个StorageArray都是一个PhysicalDevice
我想的一个解决方案是复制PhysicalServers和VirtualServers的服务器代码,但是,我觉得这与我试图做的事情相违背,这是继承.
它们需要是单独的类,因为每个类型都有属性和方法.例如,服务器将有OSCaption,内存,特效等PhysicalDevice会之类的位置,串口,供应商等,并VirtualDevice将有ParentDevice,国家,VHDLocation等.
如果继承是衬垫,那么我遇到了无法准确描述这些类型的问题.
看似有趣的东西是Interfaces.似乎我可以将所有基类定义为接口,并根据需要在我的主类中实现它们.但是,我只是不确定如果我这样做会产生什么影响.
例如,像...... 物理服务器:IAsset:IServer:IPhysical
我在深水中,所以我只是在寻找建议或指导.
为避免触及EF中的不变记录,原始和当前实体值匹配很重要.我看到小数的问题,其中EF实体具有SQL表示并且正在与c#decimal进行比较.
这是检测到更改的实体的调试输出.这很清楚地显示了这个问题.即使实体和源数据都是十进制类型,即使它们相等,值也被视为差异.
使用c#decimal时,如何确保原始值和当前值匹配?
也许有一种方法可以在更新之前将c#decimal转换为实体(SQL)十进制?
另一个例子
我希望截断忽略传入精度高于SQL规模的事实