請你看看我的代碼並指向正確的方向。 我有2個表格:產品和vProductAndDescription。我需要產品的Name和LisPrice以及分別通過ProductID添加的vProductAndDescription的描述。在我看來,我在正確的軌道上實現這一目標嗎?因爲到目前爲止它只是崩潰。ASP.NET MVC 4加入兩張表
控制器:
public ActionResult Index()
{
string query = "SELECT v.Name, p.ListPrice, LEFT(v.Description, 20) from SalesLT.vProductAndDescription v, SalesLT.Product p WHERE v.ProductID = p.ProductID";
var list = db.Database.SqlQuery<Product>(query);
var result = from a in list.ToList()
join b in db.vProductAndDescriptions on a.ProductID equals b.ProductID
select new
{
c = a.Name,
d = a.ListPrice,
e = b.Description
};
return View(result.ToList());
}
查看:
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<table>
<tr>
<th>Name
</th>
<th>Price (R)
</th>
<th>Description
</th>
<th></th>
</tr>
@foreach (var item in ViewData.Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.ListPrice)
</td>
<td>
@Html.DisplayFor(modelItem => item.Description)
</td>
</tr>
}
</table>
你會得到什麼錯誤? – Stijn
EntityCommandExecutionException未被用戶代碼處理,數據讀取器與指定的「AdventureWorksLT2008R2Model.Product」不兼容。類型爲'ProductID'的成員在數據讀取器中沒有相應的列,名稱相同。 – Chris
這對我來說完全沒有意義,因爲它顯然確實有相應的列,這很明顯。當然有一種更簡單的方法來連接兩個表並在視圖中顯示它們? – Chris