向LINQ to SQL生成的类添加新方法

时间:2009-02-11 02:30:59

标签: asp.net linq linq-to-sql

我是LINQ的新手。我只是将所有数据库表拖到LINQ to SQL dbml中的设计器上。我所有的关系都是正确的,在设计师看来很好。我可以使用简单的LINQ代码提取数据。我想现在添加我自己的方法,但是如果(当)我需要重新生成我的dbml时不想吹走我的更改。我猜我只是创建一个新的类文件并设置生成的类的部分类。它是否正确?例如,我有一个名为 SystemUser 的生成类,其中包含 SystemUserId,Username,Password,PersonId,SecurityQuestionId,SecurityQuestionResponse 列。我想添加一个名为 void Authenticate() 的方法和一个名为 bool Authenticated 的新属性。基本上我想将用户名和密码传递给 Authenticate() ,并根据查找设置 经过身份验证的 属性匹配的用户等。我在哪里以及如何做到这一点?

3 个答案:

答案 0 :(得分:13)

LINQ生成的类是部分类,这意味着您可以通过创建自己的partial classespartial methods来扩展它们。

在您的情况下,您可以为SystemUser创建一个分部类,然后在那里添加您的方法。如果重新生成DBML文件,则不会覆盖它们。

类似的东西:

public partial class SystemUser
{
    public bool Authenticated { get; set; }

    void Authenticate()
    {
        //Perform custom logic here.
    }
}

答案 1 :(得分:2)

看一下使用Partial类......它可能非常适合你的情况。

答案 2 :(得分:1)

如果您只是希望您的类有一个新方法,那么您可以创建一个新文件并使用分部类。