Linq to sql 在linq到sql分部类中插入额外数据

Linq to sql 在linq到sql分部类中插入额外数据,linq-to-sql,partial,Linq To Sql,Partial,我有一个L2S生成的类叫做Accounts,我有一个L2S类叫做UsersInAccounts我需要添加一个函数调用AddUserToAccount(accountid,userid),这个函数是否应该/可以添加到我创建的partial Accounts类,或者是用于获取数据而不是编辑数据的partial类 public partial class Account { public void addUser(Guid userid) {

我有一个L2S生成的类叫做Accounts,我有一个L2S类叫做UsersInAccounts我需要添加一个函数调用AddUserToAccount(accountid,userid),这个函数是否应该/可以添加到我创建的partial Accounts类,或者是用于获取数据而不是编辑数据的partial类

 public partial class Account
    {

        public void addUser(Guid userid)
        {
           // code
        }
    }

我不认为你所做的是个问题。在您的代码中,您可能有一个帐户实例,您想用它来做一些事情,以便能够做到这一点:

Account theAccountIWant = GetTheAccount();
theAccountIWant.addUser(myUsersGUID);
…看起来很直观。在addUser方法中执行一些错误捕获并传回某种成功状态可能是一个好主意,但这是另一个讨论


编辑:按照建议,如果您随后检索一个用户对象,并希望使用AccountUsers属性将其附加到帐户,则除非您传入DataContext,否则这是没有用的。

我建议的方法的问题在于addUser函数,我无法使用linq语法来执行此操作。UsersInAccounts.InsertOnSubmit(userinaccount)我道歉,我不知道您正在添加sql实体。实体扩展更改数据没有错,但您的问题是DataContext将超出范围。你可以把它作为额外的参数传递给addUser,但我承认这有点笨拙。如果你想在分部类中保留这类内容,你可能更愿意这样做。我想这就是为什么人们将Linq to sql视为dal,看起来我需要创建一个业务对象帐户类,你会在我的senario中这样做吗?是的!只有当我想让实体更丰富一些时,我才扩展LINQToSQL实体(正如您在示例中所做的那样)。例如,在我的一个应用程序中,我有一个映射到我的客户SQL表的客户实体。它有firstname和姓氏字段,但我也创建了一个全名字段,将两者连接起来,并修复了任何资本化问题。然后我有一个类(我实际上称之为DAL),它有我必须调用的所有方法-AddCustomer、GetCustomer等。除了通过这个类之外,我不会在我的应用程序中调用linq方法。在将来进行db更改时,这是一个巨大的解脱。