我是LINQ的新手。我只是将所有数据库表拖到LINQ to SQL dbml中的设计器上。我所有的关系都是正确的,在设计师看来很好。我可以使用简单的LINQ代码提取数据。我想现在添加我自己的方法,但是如果(当)我需要重新生成我的dbml时不想吹走我的更改。我猜我只是创建一个新的类文件并设置生成的类的部分类。它是否正确?例如,我有一个名为 SystemUser 的生成类,其中包含 SystemUserId,Username,Password,PersonId,SecurityQuestionId,SecurityQuestionResponse 列。我想添加一个名为 void Authenticate() 的方法和一个名为 bool Authenticated 的新属性。基本上我想将用户名和密码传递给 Authenticate() ,并根据查找设置 经过身份验证的 属性匹配的用户等。我在哪里以及如何做到这一点?
答案 0 :(得分:13)
LINQ生成的类是部分类,这意味着您可以通过创建自己的partial classes或partial methods来扩展它们。
在您的情况下,您可以为SystemUser创建一个分部类,然后在那里添加您的方法。如果重新生成DBML文件,则不会覆盖它们。
类似的东西:
public partial class SystemUser
{
public bool Authenticated { get; set; }
void Authenticate()
{
//Perform custom logic here.
}
}
答案 1 :(得分:2)
看一下使用Partial类......它可能非常适合你的情况。
答案 2 :(得分:1)
如果您只是希望您的类有一个新方法,那么您可以创建一个新文件并使用分部类。