我有一个使用EntityFramework作为数据层的Silverlight 4应用程序。
有两个实体:客户和产品。当我从数据库中获取客户时,相关产品也会被读取,因为我在客户的元数据中添加了相关的Include属性,并在获取查询中调用Include方法:
public IQueryable<customer> GetCustomerSetById(int customerId)
{
return this.ObjectContext.CustomerSet
.Include(o => o.Products)
.Where(o => o.Id = customerId);
}
当我更改客户产品中的任何属性时,我会遇到以下异常:
This EntitySet of Type MyApp.Web.Models.Product does not support the Edit operation.
但是,如果我直接阅读客户产品,一切都会起作用,例如,不是通过客户实体(CustomerContext),而是通过产品一(ProductContext)。
产品实体中还有IsReadOnly=true属性。
更新:
我有所有CUD操作,并用相关的Insert、Update和Delete属性标记了所有操作。否则,它根本不起作用,但在某些情况下,它对我有效,正如我在上面所写的那样。
有什么想法吗?