当我通过EF进行查询以检索连接数据时,我遇到了问题:
string query = "SELECT * FROM Customer cus INNER JOIN Adress addr ON addr.Id = cus.Adresse_Id WHERE cus.name = 'John' ";
Model model = new Model();
List<Customer> cus = model.Database.SqlQuery<Customer>(query).ToList();
我只能恢复客户端的属性
我的两张桌子:
客户:
地址:
我也不知道如何检索Adress的属性。
我有第二个问题:我有一个对象要创建,因为请求EF和直接来自web服务的对象
我想比较两个对象的属性,但我不知道如何在许多情况下做出其他方面。
我尝试探索很多曲目,但没有成功。
谢谢你!
答案 0 :(得分:0)
我也不知道如何检索Adress的属性。
您可以使用联接。根据您的架构,您需要以下内容:
var client = from customer in dbContext.Customer
inner join address in dbContext.Address
on customer.Address_Id equals address.Id
where customer.Name = "John"
select
{
CustomerId = customer.Id,
CustomerName = customer.Name,
Address = address.Addresse
AddressCodePostal = address.Code_postal
// ...
};
我假设您有一个dbConetxt
类,以便您的应用程序与数据库通信。
为什么你的代码没有做你想做的事情?
在执行查询后,您可以创建Customer
List<Customer> cus = model.Database.SqlQuery<Customer>(query).ToList();
当然,Customer
类没有定义与客户地址相关的任何属性。您查询从数据库中获取此信息,但您不能使用它。因此,更快的解决方案比以上更好地为Customer
类定义这些额外的属性,并且全部。