我有一个功能。此函数使用IEnumerable<Customer>
(Customer
作为实体)。该函数需要做的是告诉DataContext
(其中有一个Customers
的集合作为属性),Customers
属性需要被IEnumerable<Customer>
中传递的DomainContext.Customers
属性覆盖。我无法使用分配,因为{{1}}无法分配,因为它是只读的。
我想我不清楚我在问什么,所以我想我应该说......我该怎么做?所以我们有DataContext.Customers(类型为System.Data.Linq.Table),它想要用System.Collections.Generic.IEnumerable替换。我不能将后者分配给前者,因为DataContext的属性是只读的。但必须有办法。
修改:这是一张图片:
进一步修改:是的,此图片没有类型&#39;客户&#39;的集合。而是“连接”。但这并不重要,它们都是从链接的SQL数据库中的表创建的。所以有dc.Connections,dc.Customers,dc.Media等等。
提前致谢。
答案 0 :(得分:0)
您的收藏品IsReadonly。当您在viewstate中有一个接口时,或者在序列化该集合的其他位置时,可能会发生这种情况。如果它是反序列化的,那么它只是readonly,因为它没有接口实现它的功能。
答案 1 :(得分:0)
我假设您想要在IEnumerable中具有相同UPDATE
个实体的上下文中Customer
个ID
个实体,您可以使用此答案中的方法:
答案 2 :(得分:0)
不是DataContext.SubmitChanges()
??
回答版本 (对于那些努力看到这个修辞问题是建议答案的人):
这是DataContext.SubmitChanges()
答案 3 :(得分:0)
这是正常的,大多数时候收藏应该是只读的。
您只需要清除该集合,然后使用foreach添加每个新项目:
private void SetItems(IEnumerable<MyObject> _NewItems)
{
myCollection.Clear();
foreach (MyObject newItem in _NewItems)
{
myCollection.Add(newItem);
}
}