5

我有一个简单的实体数据模型(使用 VS2010),我从一个包含三个不相关表的简单 SQL Server 数据库进行逆向工程。

我尝试使用以下代码将数据保存到数据库:

var dbOptions = new ARC_WHENTECHModel.TEMP_LANDED_WHENTECH_OPTION_POSITION();

//first map fields required for standard di processing
dbOptions.OPTION_POSITION_SOURCE_ID = webSvcOption.TDR + "_" + webSvcOption.CNTR + "_" + webSvcOption.CRV;
dbOptions.INSERTED_DT = DateTime.Now;
dbOptions.CURRENT_IND = "Y";

//now map the data we've pulled from the web service call
dbOptions.CA = webSvcOption.CA;
dbOptions.CDTP = webSvcOption.CDTP;
dbOptions.CMD = webSvcOption.CMD;
dbOptions.CNTR = webSvcOption.CNTR;
dbOptions.CPP = webSvcOption.CPP;
dbOptions.PDTP = webSvcOption.PDTP;
dbOptions.SPR = webSvcOption.SPR;
dbOptions.TDR = webSvcOption.TDR;


context.AddToTEMP_LANDED_WHENTECH_OPTION_POSITION(dbOptions);
context.SaveChanges();

但我得到以下异常:

An EdmType cannot be mapped to CLR classes multiple times. The EdmType 'RDLMServiceTier.TEMP_LANDED_WHENTECH_FUTURES_POSITION' is mapped more than once.

在 Designer.cs 代码中的以下行 (base.AddObject):

[global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
public void AddToTEMP_LANDED_WHENTECH_OPTION_POSITION(TEMP_LANDED_WHENTECH_OPTION_POSITION tEMP_LANDED_WHENTECH_OPTION_POSITION)
{
    base.AddObject("TEMP_LANDED_WHENTECH_OPTION_POSITION", tEMP_LANDED_WHENTECH_OPTION_POSITION);
}

谁能告诉我我可能做错了什么?我对实体框架没有太多经验(过去它总是“刚刚工作”)。我想下一步可​​能是反映 EF 代码,但这将非常棘手,因为我正在远程机器上进行调试,我没有很大的空间来安装额外的软件。

谢谢

抢。

4

2 回答 2

1

Gert 正确回答了这个问题 - 存在另一个模型文件副本。

于 2012-12-14T16:59:13.637 回答
0

我刚刚遇到了类似的问题,导致它的具体行是:

[EdmComplexTypeAttribute(NamespaceName = "MyModel", Name = "MyDuplicatedClassName")]

修复重复的名称后,一切正常。

于 2013-11-29T15:30:12.153 回答