我需要知道我在做什麼錯誤,因爲生成的查詢與數據庫表的屬性不匹配,我認爲我的類是良好的類型,也是映射。這裏是我的代碼使用實體框架生成的錯誤查詢
public class Usuario
{
#region Atributos
private int _intID = 0;
private Perfil _Perfil_FK = null;
private String _strNombre = "";
private String _strPassword = "";
#endregion
#region Propiedades
public int ID
{
get { return _intID; }
set { _intID = value; }
}
public Nullable<int> IDPerfil_FK { get; set; }
public virtual Perfil Perfil_FK
{
get { return _Perfil_FK; }
set { _Perfil_FK = value; }
}
public String Nombre
{
get { return _strNombre; }
set { _strNombre = value; }
}
public String Password
{
get { return _strPassword; }
set { _strPassword = value; }
}
#endregion
}
我的測試是僅此_db.Usuario()
生成的SQL查詢
SELECT
[Extent1].[IDUsuario] AS [IDUsuario],
[Extent1].[IDPerfil_FK] AS [IDPerfil_FK],
[Extent1].[Nombre] AS [Nombre],
[Extent1].[Password] AS [Password],
[Extent1].[PerfilID] AS [PerfilID] <-- this attribute doesn't exit's
FROM [dbo].[Usuario] AS [Extent1];
這裏是我的數據庫上下文類
public class MasterPageAtentoDB : DbContext
{
public DbSet<Pagina> Pagina { get; set; }
public DbSet<Perfil> Perfil { get; set; }
public DbSet<Permiso> Permiso { get; set; }
public DbSet<Usuario> Usuario { get; set; }
protected override void OnModelCreating(System.Data.Entity.ModelConfiguration.ModelBuilder modelBuilder)
{
modelBuilder.Entity<Usuario>().Property(r => r.ID).HasColumnName("IDUsuario");
modelBuilder.Entity<Pagina>().Property(r => r.ID).HasColumnName("IDPagina");
modelBuilder.Entity<Permiso>().Property(r => r.ID).HasColumnName("IDPermiso");
modelBuilder.Entity<Perfil>().Property(r => r.ID).HasColumnName("IDPerfil");
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
base.OnModelCreating(modelBuilder);
}
}
我的數據庫表
我不確定,但EF4.1 DbContext的東西是嚴重的名稱和名稱模式的基礎上,我會建議丟棄'_FK'後綴。 –