2012-12-13 29 views
5

Tôi có một mô hình dữ liệu Thực thể đơn giản (sử dụng VS2010) mà tôi đảo ngược thiết kế từ một cơ sở dữ liệu SQL Server đơn giản có chứa ba bảng không liên quan.Khung thực thể - loại edm được ánh xạ nhiều hơn một

Tôi cố gắng để lưu dữ liệu vào cơ sở dữ liệu bằng cách sử dụng đoạn mã sau:

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(); 

nhưng tôi nhận được ngoại lệ sau đây:

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

tại dòng sau (base.AddObject) trong thiết kế .cs code:

[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); 
} 

Mọi người có thể vui lòng cho biết những gì tôi có thể làm sai không? Tôi không có nhiều kinh nghiệm với Entity Framework (nó luôn luôn "chỉ hoạt động" trong quá khứ). Tôi đoán bước tiếp theo có thể phản ánh mã EF nhưng điều đó khá phức tạp vì tôi đang gỡ lỗi trên một máy từ xa mà tôi không có phạm vi lớn để cài đặt thêm phần mềm.

Cảm ơn

Rob.

+6

Điều này thường chỉ ra rằng có một lớp 'TEMP_LANDED_WHENTECH_OPTION_POSITION' khác trong dự án, ngay cả khi nó ở trong một không gian tên khác. Có lẽ mô hình đã được tạo ra hai lần bằng cách nào đó? –

+0

Đó là nó! Bằng cách nào đó tôi phải tạo ra một bản sao của tập tin mô hình. Rất cám ơn Gert. –

Trả lời

1

Gert trả lời chính xác - có một bản sao khác của tệp mô hình hiện tại.

0

Tôi chỉ có một vấn đề tương tự, và dòng cụ thể mà gây ra đó là:

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

Khi tên trùng lặp đã được cố định tất cả mọi thứ làm việc tốt.

Các vấn đề liên quan