gpt4 book ai didi

C# 将 System.Data.Entity.DynamicProxies 克隆到实际(非代理)类?

转载 作者:太空狗 更新时间:2023-10-29 20:40:25 27 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
EF4 Cast DynamicProxies to underlying object

我正在尝试弄清楚如何将 System.Data.Entity.DynamicProxies 克隆或转换为它的实际类。例如:

System.Data.Entity.DynamicProxies.Currency_F4008E27DE_etc is the proxy class
MyApp.Entities.Currency is the real class

MyApp.Entities 中的所有类都继承自 BaseEntity,因此我尝试在那里进行转换:

public abstract partial class BaseEntity
{
public T ShallowCopy<T>() where T : BaseEntity
{
return this.MemberwiseClone() as T;
}
// other BaseEntity properties not relevent here
}

然后将 DynamicProxies 转换为真正的类:

// this returns a DynamicProxies class
Currency currency = LookupDefaultCurrency();
// this one needs to return a Entities.Currency class
// (but currently returns a DynamicProxies class too
Currency pocoCurrency = (Currency)currency.ShallowCopy<Currency>();
HttpRuntime.Cache[key] = pocoCurrency;

这样做的原因是我想从此对象中删除所有 Entity Framework 跟踪等,并仅将其普通 (POCO) 属性存储在缓存中。而且我需要能够为所有 100 个左右的实体类执行此操作,因此它必须具有合理的通用性——无需手动为每个属性指定 object1.foo = object2.foo。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com