Linq不是坚持加入名单?

时间:2011-06-07 21:56:15

标签: linq-to-sql

我有一个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();

不应该成功地将交叉引用表添加到交叉引用表中吗?

2 个答案:

答案 0 :(得分:0)

我认为你想要InsertOnSubmit而不是Add。您使用过时版本的Linq到sql吗?

答案 1 :(得分:0)

您正在向此添加新的T_U。用户......这有用吗?这不是错误的类型吗?

 this.Users.Add( new T_U() { TID = this.ID, UID = user.ID );