Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 执行机构<&燃气轮机;使用层次结构对象和LINQ到SQL_Asp.net_Linq To Sql_Dynamic Sql - Fatal编程技术网

Asp.net 执行机构<&燃气轮机;使用层次结构对象和LINQ到SQL

Asp.net 执行机构<&燃气轮机;使用层次结构对象和LINQ到SQL,asp.net,linq-to-sql,dynamic-sql,Asp.net,Linq To Sql,Dynamic Sql,假设我有两个对象: public class Person{ string Name { get; set;} Address Home { get; set;} } public class Address{ string Street{ get; set;} string City { get; set;} } string sql = "Select Name, Home_street, Home_city from user";

假设我有两个对象:

public class Person{
     string Name { get; set;}
     Address Home { get; set;}
}

public class Address{
     string Street{ get; set;}
     string City { get; set;}
}


    string sql = "Select Name, Home_street, Home_city from user";
    var results = dc.ExecuteQuery<Person>(sql);
公共类人物{
字符串名称{get;set;}
主地址{get;set;}
}
公共课堂演讲{
string Street{get;set;}
字符串城市{get;set;}
}
string sql=“从用户中选择姓名、家乡街道、家乡城市”;
var results=dc.ExecuteQuery(sql);
这里的问题是家乡街道和家乡城市没有人口。有什么办法可以让它工作吗?我认为使用关联属性可以解决这个问题,但不确定如何解决


如果使用存储过程,我也会遇到同样的问题。我正在尝试构建一个查询工具,以便很多变量都不提前知道。

您需要创建一个具有平面形状的数据对象来捕获结果,然后将这些结果投影到您想要的任何形状

public class PersonQueryResult
{
  string Name {get;set;}
  string Home_street {get;set;}
  string Home_city {get;set;}
}

string sql = "Select Name, Home_street, Home_city from user";
List<PersonQueryResult> results = dc.ExecuteQuery<PersoneQueryResult(sql).ToList();
List<Person> projectedResults = results.Select(pqr => new Person()
  {
    Name = pqr.Name,
    Home = new Address()
    {
      Street = pqr.Home_street,
      City = pqr.Home_city
    }
  }
).ToList();

谢谢你,大卫。是否有一种方法可以将字符串Home\u street{get;set;}string Home\u city{get;set;}动态添加到Person对象?或者动态创建整个PersonQueryResult类?我知道这在4.0中是可能的,但我用的是3.5。
string queryString = 
  "SELECT CustomerID, CompanyName FROM dbo.Customers";
SqlDataAdapter adapter = new SqlDataAdapter(queryString, connection);

DataSet customers = new DataSet();
adapter.Fill(customers, "Customers");