我有一个关于WCF DataService and Entity Framework 4.1 (code-first)的问题。所以我在 Web 服务器上有一个 DataService:
[ServiceBehavior(IncludeExceptionDetailInFaults = true)]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class CrmDataService : DataService<CrmDataContext>
{
private static CrmDataContext _mdc;
public static void InitializeService(DataServiceConfiguration config)
{
config.SetEntitySetAccessRule("*", EntitySetRights.All);
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
config.UseVerboseErrors = true;
}
protected override CrmDataContext CreateDataSource()
{
_mdc = new CrmDataContext(@"Data Source=localhost;Database=MyDb;User Id=sqluser;Password=111111;") { TablePrefix = "crm_" };
_mdc.Configuration.ProxyCreationEnabled = false;
return _mdc;
}
我还有一个我的 CrmDataContext 使用的实体对象列表(例如 Company、Address、Person 等)。将此服务添加到我的客户端应用程序(例如,进入 Services 命名空间中)后,我得到了相同的实体对象,但在Services 命名空间中。当然,然后我想通过 Data Service 获取任何 Company 对象(例如),它会从命名空间Services返回一组实体对象。
所以我的问题是如何告诉数据服务使用我的真实实体对象而不在我的项目中创建这些其他代理对象?如果不可能,那么如何将我从数据服务获得的对象复制到我的真实实体中?
我的目标是使用数据上下文通过数据服务从服务器获取一些实体对象,而不是在客户端使用它们。我想为本地和服务器端的所有实体对象使用一个程序集。