Tôi vừa bắt đầu sử dụng các hợp đồng mã trong dự án của mình. Tuy nhiên, tôi có một vấn đề với việc triển khai kho lưu trữ của tôi, truy vấn cơ sở dữ liệu của tôi bằng cách sử dụng khung Entity..NET 4 Mã hợp đồng: "yêu cầu chưa được chứng minh: source! = Null"
tôi có phương pháp sau đây:
public IEnumerable<Organization> GetAllOrganizations()
{
return _uow.CreateSet<Party>().OfType<Organization>().AsEnumerable();
}
Phương pháp này trả về một bộ sưu tập bao gồm tất cả các tổ chức trong cơ sở dữ liệu, hay một bộ sưu tập sản phẩm nào đó không phải là các tổ chức trong cơ sở dữ liệu.
Tuy nhiên, điều này không ổn theo CodeContracts, trong đó cung cấp cho tôi những lỗi: "yêu cầu chưa được chứng minh: nguồn = null"
gì là nó cố gắng để cho tôi biết? Tôi có thể thỏa mãn các hợp đồng mã bằng cách sử dụng Contract.Assume, giả sử rằng nó sẽ luôn tìm thấy thứ gì đó, nhưng sau đó tôi cần làm điều đó trong tất cả các phương thức đọc dữ liệu từ cơ sở dữ liệu.
Tôi có thiếu thứ gì đó ở đây hay hành vi dự định khi bạn đang làm việc với cơ sở dữ liệu và LINQ?
"Nguồn" là gì? Có bất kỳ phương pháp nào bạn đang gọi có hợp đồng không? –
Có phải [this] (http://stackoverflow.com/questions/3050279/how-to-avoid-source-null-when-using-code-contracts-and-linq-to-sql) không? – adrianbanks
@Anon: Tôi không biết "nguồn" là gì. Tôi không biết nếu có hợp đồng về các phương pháp trong khung Entity, nhưng tôi không nghĩ như vậy. @adrianbanks: Không xin lỗi, tôi không thể thấy nó có thể giúp tôi như thế nào. – Vern