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

use*_*874 10 linq asp.net linq-to-sql

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

Eri*_*ing 13

LINQ生成的类是部分类,这意味着您可以通过创建自己的部分类部分方法来扩展它们.

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

就像是:

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

    void Authenticate()
    {
        //Perform custom logic here.
    }
}
Run Code Online (Sandbox Code Playgroud)