2016-05-19 22 views
5

Tôi đang cố gắng sử dụng FakeXrmEasy để thực hiện một số xét nghiệm đơn vị cho CRM Online (2016) và tôi đang gặp vấn đề thiết lập một trong những thử nghiệm của tôi với một N: N mối quan hệCRM 2016 FakeXrmEasy N: N mối quan hệ

Đoạn mã sau thiết lập một bối cảnh giả với 2 đơn vị trong đó và khởi tạo một giả Tổ chức Dịch vụ:

var entity1 = new New_entityOne(); 
var entity2 = new New_entityTwo(); 

var context = new XrmFakedContext(); 
context.ProxyTypesAssembly = Assembly.GetAssembly(typeof(New_entityOne)); 
context.Initialize(new List<Entity>() 
{ 
    entity1, 
    entity2 
}); 

var service = context.GetFakedOrganizationService(); 

sau đó tôi cố gắng tạo ra một N: N mối quan hệ giữa các thực thể:

var join = new AssociateRequest 
{ 
    Relationship = new Relationship 
    { 
     SchemaName = "new_entityOne_new_entityTwo", 
     PrimaryEntityRole = EntityRole.Referenced 
    }, 
    Target = entity1.ToEntityReference(), 
    RelatedEntities = new EntityReferenceCollection 
    { 
     entity2.ToEntityReference() 
    } 
}; 

service.Execute(join); 

Khi tôi thực hiện Request này, tôi đang mong đợi một N: N-tham gia kỷ lục được sản xuất trong dữ liệu giả của tôi, giữa entity1entity2

Thay vào đó tôi nhận được một lỗi như thế này:

một ngoại lệ của loại 'System.Exception' xảy ra ở FakeXrmEasy.dll nhưng không được xử lý theo mã người dùng

thông tin thêm: Mối quan hệ new_entityOne_new_entityTwo không không tồn tại trong bộ nhớ cache metadata

Có ai khác đã thử sử dụng khung đơn vị này theo cách này không? Cho đến thời điểm này tôi đã nhận được kết quả thực sự tốt bằng cách sử dụng nó.

rõ ràng, đây không phải là thực tế thực thể và mối quan hệ tên của tôi

Trả lời

2

Hãy thử thêm một mối quan hệ giả như here

Đây là bởi vì đối với N: 1 không có bàn giao nhau, tham gia được thực hiện thông qua một EntityReference và đó là nó, nhưng đối với nhiều người, vì có một bảng giao nhau, chúng ta cần phải nói cho khung làm thế nào để đối phó với kịch bản này bây giờ.

Cũng có bản cập nhật không còn bắt buộc phải sử dụng ProxyTypesAssembly, miễn là bạn sử dụng các loại bị ràng buộc sớm, lắp ráp loại proxy sẽ được "đoán" từ các loại của bạn.

Vì vậy, bạn có thể loại bỏ điều này

context.ProxyTypesAssembly = Assembly.GetAssembly(typeof(New_entityOne)); 

tôi sẽ cần phải cập nhật các tài liệu trong trang web ... bất cứ khi nào tôi có một cơ hội :)

Sửa

Web trang web được cập nhật: http://dynamicsvalue.com/get-started/nn-relationships

+0

Cảm ơn rất nhiều Jordi, tôi đã tìm thấy các ví dụ của bạn thực sự hữu ích, tôi không thể tìm thấy trang này. Tôi cũng sẽ xóa dòng bị phản đối đó – jasonscript

+0

@jasonscript Bạn rất hoan nghênh. Vui lòng gửi email cho tôi nếu bạn có bất kỳ câu hỏi nào khác, có thể nhanh hơn vì tôi không nhận ra câu hỏi này ở đây cho đến khi bạn đề cập trực tiếp cho tôi :) – Jordi

+0

@jasonscript Chỉ cần triển khai phiên bản mới của trang web với phần mới cho N: N mối quan hệ. Nếu bạn tìm thấy bất cứ điều gì khác có thể có, xin vui lòng cho tôi biết :) – Jordi

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