我有一个 ASP.NET MVC 项目,我想先使用 Entity Framework 6 代码。在 Entity Framework 6 中,我们可以使用存储过程并映射到它们。我使用这段代码来映射它,但是当我想创建我的数据库时,我得到了这个错误:
一个或多个实体的验证失败。有关更多详细信息,请参阅“EntityValidationErrors”属性。
但是当我清理所有存储过程映射时,它会创建我的数据库。
我必须在我的程序中使用存储过程,因此我必须知道如何通过 EF 6 代码优先映射和使用存储过程?我的代码有什么问题,在映射存储过程时如何调用它们?
using System.Data.Entity;
namespace Raja.Models.Context
{
public class RajaContext : DbContext
{
public RajaContext() : base("name=RajaContext")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
#region SpareParts
modelBuilder.Entity<Spareparts>()
.MapToStoredProcedures(s => s.Update(u => u.HasName("Spareparts_Update").Parameter(P => P.Code, "Code")
.Parameter(P => P.SparepartName, "SparepartName")
.Parameter(P => P.Serial, "Serial")
.Parameter(P => P.ProjectNumber, "ProjectNumber")
.Parameter(P => P.SparePartType, "SparePartType")
.Parameter(P => P.Emplacement, "Emplacement")
//.Parameter(P => P.TakingPlace.TrainID, "TakingPlace")
.Parameter(P => P.AssemblyTime, "AssemblyTime")
.Parameter(P => P.ConsumptionFactor, "ConsumptionFactor")
.Parameter(P => P.Warranty, "Warranty")
.Parameter(P => P.Qty, "Qty")
.Parameter(P => P.Cost, "Cost")
.Parameter(P => P.HasRepair, "HasRepair")
.Parameter(P => P.Enable, "Enable")
.Parameter(P => P.Picture, "Picture")
.Parameter(P => P.Description, "Description")
.Parameter(P => P.CreatedDate, "CreatedDate")
.Parameter(P => P.CreateByUser, "CreateByUser")
.Parameter(P => P.LastModificationDate, "LastModificationDate")
.Parameter(P => P.LastModifyByUser, "LastModifyByUser")
.Parameter(P => P.PlaceOfSupply, "PlaceOfSupply"))
.Delete(d => d.HasName("Spareparts_Delete").Parameter(p => p.SparepartId, "SparepartId"))
.Insert(i => i.HasName("Spareparts_Insert").Parameter(P => P.SparepartName, "SparepartName")
.Parameter(P => P.Code, "Code")
.Parameter(P => P.Serial, "Serial")
.Parameter(P => P.ProjectNumber, "ProjectNumber")
.Parameter(P => P.SparePartType, "SparePartType")
.Parameter(P => P.Emplacement, "Emplacement")
//.Parameter(P => P.TakingPlace.TrainID, "TakingPlace")
.Parameter(P => P.AssemblyTime, "AssemblyTime")
.Parameter(P => P.ConsumptionFactor, "ConsumptionFactor")
.Parameter(P => P.Warranty, "Warranty")
.Parameter(P => P.Qty, "Qty")
.Parameter(P => P.Cost, "Cost")
.Parameter(P => P.HasRepair, "HasRepair")
.Parameter(P => P.Enable, "Enable")
.Parameter(P => P.Picture, "Picture")
.Parameter(P => P.Description, "Description")
.Parameter(P => P.CreatedDate, "CreatedDate")
.Parameter(P => P.CreateByUser, "CreateByUser")
.Parameter(P => P.LastModificationDate, "LastModificationDate")
.Parameter(P => P.LastModifyByUser, "LastModifyByUser")
.Parameter(P => P.PlaceOfSupply, "PlaceOfSupply")));
#endregion
}
public DbSet<Spareparts> Spareparts { get; set; }
}
}