fly*_*lip 4 c# wpf entity-framework-6
我试图扩展EF 6代码的第一个模型,我收到一个错误.我搜索过,找不到有关该问题的更多信息.我在同一名称空间中创建了一个与我的模型同名的部分类.这是我的模型和扩展:
型号 -
namespace DataAccess.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Spatial;
[Table("Vehicle")]
public partial class Vehicle
{
public Vehicle()
{
WorkOrders = new HashSet<WorkOrder>();
}
public int VehicleID { get; set; }
public int CustomerID { get; set; }
[StringLength(17)]
public string VIN { get; set; }
public int Mileage { get; set; }
[StringLength(4)]
public string Year { get; set; }
[StringLength(50)]
public string Make { get; set; }
[StringLength(50)]
public string Model { get; set; }
[StringLength(50)]
public string Engine { get; set; }
[StringLength(50)]
public string BodyStyle { get; set; }
[StringLength(50)]
public string Transmission { get; set; }
[StringLength(50)]
public string Trim { get; set; }
[StringLength(50)]
public string Origin { get; set; }
public bool IsDeleted { get; set; }
[StringLength(25)]
public string License { get; set; }
public bool? Is4WD { get; set; }
[StringLength(25)]
public string Color { get; set; }
public string Notes { get; set; }
[StringLength(2)]
public string LicenseState { get; set; }
public virtual Customer Customer { get; set; }
public virtual ICollection<WorkOrder> WorkOrders { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
延期 -
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DataAccess.Models
{
public partial class Vehicle
{
public string CustomerName { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
{"自创建数据库以来,支持'AiContext'上下文的模型已更改.请考虑使用Code First Migrations更新数据库(http://go.microsoft.com/fwlink/?LinkId=238269)."}
我试图调用存储过程时收到此错误.更具体地说,它正在抛出这条线:
using (ObjectContext objectContext = ((System.Data.Entity.Infrastructure.IObjectContextAdapter)dbContext).ObjectContext)
Run Code Online (Sandbox Code Playgroud)
这种方法:
public List<Vehicle> SearchVehicles(string vin,
string license,
string year,
string make,
string model)
{
SqlParameter vinParameter;
if (vin != null)
{
vinParameter = new SqlParameter("vin", vin);
}
else
{
vinParameter = new SqlParameter("vin", "");
}
SqlParameter licenseParameter;
if (license != null)
{
licenseParameter = new SqlParameter("license", license);
}
else
{
licenseParameter = new SqlParameter("license", "");
}
SqlParameter yearParameter;
if (year != null)
{
yearParameter = new SqlParameter("year", year);
}
else
{
yearParameter = new SqlParameter("year", "");
}
SqlParameter makeParameter;
if (make != null)
{
makeParameter = new SqlParameter("make", make);
}
else
{
makeParameter = new SqlParameter("make", "");
}
SqlParameter modelParameter;
if (model != null)
{
modelParameter = new SqlParameter("model", model);
}
else
{
modelParameter = new SqlParameter("model", "");
}
using (AiContext dbContext = new AiContext())
{
using (ObjectContext objectContext = ((System.Data.Entity.Infrastructure.IObjectContextAdapter)dbContext).ObjectContext)
{
return objectContext.ExecuteStoreQuery<Vehicle>("SearchVehicles @VIN, " +
"@License, @Year, " +
"@Make, @Model",
vinParameter,
licenseParameter,
yearParameter,
makeParameter,
modelParameter).ToList();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我很熟悉这个错误.EF显然认为我已经对模型进行了更改,并希望我更新数据库.有关为什么我收到此错误或扩展模型以添加属性或业务逻辑的其他方法的任何想法?我在这里先向您的帮助表示感谢.
如果仅在业务逻辑中使用它,而不是将其映射为数据库中的列.您需要添加[NotMapped]属性.
[NotMapped]
public string CustomerName { get; set; }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1518 次 |
| 最近记录: |