2011-02-10 33 views
5

Tôi có 3 Bảng. Siêu dữ liệu, Quy tắc và mối quan hệ NxN Siêu dữ liệu.Khuôn khổ thực thể Chèn Nhiều người tạo nhiều dữ liệu trùng lặp

Tôi đang chèn Siêu dữ liệu và đối tượng của tôi chứa danh sách các Quy tắc được truy xuất từ ​​DB.

myMetadata.Rules = myListOfrules; 

Khi tôi thực hiện chèn, tất cả các quy tắc trong myListOfRules được nhân đôi trong bảng Quy tắc, thay vì chỉ tạo mối quan hệ. Tôi đang chèn nó với:

public static void InserirTipoMetadata(TA_TIPO_METADATA tipoMetadata) { 
    using (EnterpriseContext context = new EnterpriseContext()) { 
     context.TipoMetadata.AddObject(tipoMetadata); 
     context.SaveChanges(System.Data.Objects.SaveOptions.DetectChangesBeforeSave); 
    } 
} 

Tôi nên làm gì để không sao chép Quy tắc?

Cảm ơn!

Trả lời

0

Tôi tìm thấy một giải pháp, nhưng tôi không nghĩ rằng đó là một trong những quyền ...

public static void InserirTipoMetadata(TA_TIPO_METADATA tipoMetadata) { 
      using (EnterpriseContext context = new EnterpriseContext()) { 
       List<TA_REGRA_VALID> regras = new List<TA_REGRA_VALID>(); 
       foreach (var v in tipoMetadata.TA_REGRA_VALID) { 
        regras.Add(context.Regra.Single(p => p.CO_SEQ_REGRA == v.CO_SEQ_REGRA)); 
       } 
       tipoMetadata.TA_REGRA_VALID = regras; 
       context.TipoMetadata.AddObject(tipoMetadata); 
       context.SaveChanges(System.Data.Objects.SaveOptions.DetectChangesBeforeSave); 
      } 
     } 

Tôi chọn các quy tắc một lần nữa từ DB trước khi cố gắng thêm. Đó có phải là cách chính xác không?

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