在我的模型中,我收到以下错误:
数据阅读器与指定的'RMA.DAL.RMAs'不兼容。该类型的成员, 'Notes',数据读取器中没有相应的列具有相同的名称。
我正在使用模型 - 视图 - 控制器3.下面给出的代码文件:
RMAModel.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using RMA.DAL;
using System.Collections;
namespace RMA.Models
{
public class RMAs
{
[Key]
public int RMANumber { get; set; }
public int OrderNumber { get; set; }
public string Status { get; set; }
public int CartID { get; set; }
public DateTime DateIssued { get; set; }
public DateTime OrderDate { get; set; }
public string Name { get; set; }
public string SKU { get; set; }
public int QuantityAuthorized { get; set; }
//to allow Nullable
public int? SourceOrderNumber { get; set; }
//For Notes
public string Notes { get; set; }
private DBContext_Model db = new DBContext_Model();
public IEnumerable all()
{
string query = @" SELECT DISTINCT r.RMAnumber,r.OrderNumber,r.Status,O.CartID,r.DateIssued,O.OrderDate,O.Name,oDetails.SKU,details.QuantityAuthorized,O.SourceOrderNumber,PO.PONumber
FROM RMAs r
INNER JOIN RMADetails details ON r.RMAnumber = details.RMAnumber
INNER JOIN Orders O ON O.OrderNumber = R.OrderNumber
INNER JOIN [Order Details] oDetails on O.OrderNumber = oDetails.OrderNumber
INNER JOIN Notes n on n.NumericKey = O.OrderNumber
INNER JOIN PurchaseOrders PO ON PO.OrderNumber = O.OrderNumber
INNER JOIN PurchaseOrderDetails PODetails ON PODetails.PONumber = PO.PONumber
";
var items = db.RMAs.SqlQuery(query);
return items.ToList();
}
public IEnumerable single(int RMANumber, int OrderNumber)
{
string query = @" SELECT DISTINCT r.RMAnumber,r.OrderNumber,r.Status,O.CartID,r.DateIssued,O.OrderDate,O.Name,oDetails.SKU,details.QuantityAuthorized,O.SourceOrderNumber,PO.PONumber
FROM RMAs r
INNER JOIN RMADetails details ON r.RMAnumber = details.RMAnumber
INNER JOIN Orders O ON O.OrderNumber = R.OrderNumber
INNER JOIN [Order Details] oDetails on O.OrderNumber = oDetails.OrderNumber
INNER JOIN Notes n on n.NumericKey = O.OrderNumber
INNER JOIN PurchaseOrders PO ON PO.OrderNumber = O.OrderNumber
INNER JOIN PurchaseOrderDetails PODetails ON PODetails.PONumber = PO.PONumber
AND O.OrderNumber = " + OrderNumber + " AND r.RMAnumber = " + RMANumber;
var items = db.RMAs.SqlQuery(query);
return items.ToList();
}
public IEnumerable getNotesByOrder(int OrderNumber)
{
string query = "Select * FROM Notes WHERE NumericKey = " + OrderNumber;
var notes = db.Notes.SqlQuery(query);
return notes.ToList();
}
}
}
DAL / DBContextModel.cs
using System.Data.Entity;
using RMA.Models;
namespace RMA.DAL
{
public class DBContext_Model:DbContext
{
public DbSet<RMAs> RMAs { get; set; }
public DbSet<RMADetails> RMADetails { get; set; }
public DbSet<Note> Notes { get; set; }
}
}
DetailsController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using RMA.Models;
using System.Collections;
namespace RMA.Controllers
{
public class DetailsController : Controller
{
public ActionResult Index(int id, int orderid)
{
RMAs modelRMA = new RMAs();
IEnumerable singleRMA = modelRMA.single(id,orderid);
IEnumerable notes = modelRMA.getNotesByOrder(orderid);
ViewBag.notes = notes;
return View(singleRMA);
}
}
}
index.cshtml
@model IEnumerable<RMA.Models.RMAs>
@{
ViewBag.Title = "Details Page";
}
<style>
#overview
{
width: 100%;
height:40%;
}
div > table
{
width:100%;
}
#notes
{
margin-top:2%;
}
.left
{
width:40%;
margin-top:5%;
background-color:Blue;
color:White;
}
</style>
<h4>Summary</h4>
<div id=overview>
<table>
<tr>
<th>Order #</th>
<th>RMA #</th>
<th>RMA Status</th>
<th>Market Place ID</th>
<th>RMA Issue Date</th>
<th>Order Date</th>
<th>Cust Ship To Name</th>
<th>Local Sku</th>
<th>RMA Qty</th>
<th>Marketplace Order #</th>
</tr>
@foreach (RMA.Models.RMAs i in Model)
{
//<span>@i.OrderNumber</span>
<tr>
<td>@i.OrderNumber</td>
<td>@i.RMANumber</td>
<td>@i.Status</td>
<td>@i.CartID</td>
<td>@i.DateIssued</td>
<td>@i.OrderDate</td>
<td>@i.Name</td>
<td>@i.SKU</td>
<td>@i.QuantityAuthorized</td>
<td>@i.SourceOrderNumber</td>
</tr>
}
</table>
</div>
<h4>Notes</h4>
<div id=notes>
<table>
<tr>
<th>Notes</th>
<th>Date</th>
<th>Time</th>
</tr>
@foreach (IEnumerable<RMA.Models.RMAs> note in @ViewBag.notes)
{
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
}
</table>
</div>
<div class=left>
My Reason Goes here
</div>
<div class=left>
Shipping Info
</div>
<div class=left>
Billing Info
</div>
我想了解Notes
如何在MyView上显示数据。