Blu*_*kMN 16 .net vb.net linq-to-sql
如果我按照以下步骤操作,则会出现此错误:
最后一步发生错误,因为X的值和X的原始值(由GetOriginalEntityState返回)不同,新值与Y不一致?这是为什么?这是LINQ to SQL中的错误.必须是因为如果我在步骤5中将Y更改为另一个(非空)值,我看不到相同的行为.这是正确的方法吗?我可以看到几种方式:
有没有更好的解决方案.这是应该报道的吗?
看起来这个错误已在最新的 .NET 和/或 Visual Studio 2010 中修复。为 DBML 文件生成的代码现在包含更新基础外键值的代码,即使将关联属性设置为 null 时也是如此:
[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Customer_Order", Storage="_Customer", ThisKey="fkCustomer", OtherKey="id", IsForeignKey=true)]
public Customer Customer
{
get
{
return this._Customer.Entity;
}
set
{
Customer previousValue = this._Customer.Entity;
if (((previousValue != value)
|| (this._Customer.HasLoadedOrAssignedValue == false)))
{
this.SendPropertyChanging();
if ((previousValue != null))
{
this._Customer.Entity = null;
previousValue.Orders.Remove(this);
}
this._Customer.Entity = value;
if ((value != null))
{
value.Orders.Add(this);
this._fkCustomer = value.id;
}
else
{
this._fkCustomer = default(Nullable<int>);
}
this.SendPropertyChanged("Customer");
}
}
}
Run Code Online (Sandbox Code Playgroud)
我认为this._fkCustomer = default(Nullable<int>);当我最初发布这个问题时,我正在测试的代码中一定不存在。因此,要么我的 DBML 设置错误,要么这个问题已得到解决。
| 归档时间: |
|
| 查看次数: |
1395 次 |
| 最近记录: |