使用LINQ TO SQL将查询转换为对象

4
我正在使用C#中的LINQ TO SQL连接SQL数据库,我有一个名为Person的数据表,其中包含有关个人的信息,并具有以下字段:Person_IdFirst_NameLast_NameEmailPassword。我有以下查询,如果有匹配则返回一行:
LINQDataContext data = new LINQDataContext();
            var query = from a in data.Persons
                        where a.Email == "Any Email String"
                        select a;

我的问题是如何将query转换为定义为Equivalent class的实例。
class Person
{
    public int person_id;
    public string First_Name;
    public string Last_Name;
    public string E_mail;
    public string Password;
    public Person() { }
} 

var person = query.FirstOrDefault() 怎么样? - Damith
2个回答

7

就像这样:

Person query = (from a in data.Persons
            where a.Email == "Any Email String"
            select new Person { person_Id = a.Id, and so on }).FirstOrDefault();

谢谢你,但我想将其初始化为 Person 类型而不是 var,并将此引用用作函数的返回值,如何做到这一点? - Mohamad Ghanem
在我的答案中,var 将会是 Personvar 只是一个关键字,让编译器自己发现类型)。你可以显式地将 var 更改为 Person,它也能正常工作(请参见我的编辑)。 - gzaxx

2
我会这样做:
var query = (from a in data.Persons
            where a.Email == "Unique Email String"
            select new Person { person_Id = a.Id, etc etc });

//By using this code, you can add more conditions on query as well..

//Now the database hit will be made
var person = query.FirstOrDefault();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接