我有一个T类与交叉引用表有关联。我希望在类上有一个方法,通过接收代表另一方的实体为交叉引用添加一个条目。但是,出于某种原因,虽然我可以将项目添加到集合中,但它不会添加到数据上下文的更改集中。
所讨论的课程如下:
class T
{
public EntitySet<T_U> t_users
{
get
{
if ((this.serializing && (this.t_user.HasLoadedOrAssignedValues == false)))
{
return null;
}
return this.t_user;
}
set
{
this.Users.Assign(value);
}
}
public AddUser(U user)
{
this.t_users.Add( new T_U() { TID = this.ID, UID = user.ID );
}
}
使用此类的客户端基本上会执行以下操作:
var db = new DBDataContext();
var t = db.Ts.FirstOrDefault( t => t.ID = 100);
var u = db.Us.FirstOrDefault(u => u.ID == 3);
t.AddUser(u);
db.SubmitChanges();
不应该成功地将交叉引用表添加到交叉引用表中吗?
答案 0 :(得分:0)
我认为你想要InsertOnSubmit而不是Add。您使用过时版本的Linq到sql吗?
答案 1 :(得分:0)
您正在向此添加新的T_U。用户......这有用吗?这不是错误的类型吗?
this.Users.Add( new T_U() { TID = this.ID, UID = user.ID );