我创建了这个类
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 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
}
在我的上下文中,我定义了这个属性
protected override void OnModelCreating(System.Data.Entity.ModelConfiguration.ModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingEntitySetNameConvention>();
base.OnModelCreating(modelBuilder);
}
在我的代码的某些部分,我做了这个linq
Usuario user = (from U in _db.Usuario where ((U.Nombre == model.UserName) && (U.Password == encripPassword)) select U).First();
造成这种情况System.Data.SqlClient.SqlException: Invalid column name 'Perfil_FK_ID'.
可能是什么问题?对我来说代码是
答案 0 :(得分:1)
您已创建类型为Perfil_FK
的导航属性Perfil
。但是您尚未指定要与该关系一起使用的外键列。因此,约定的EF假定外键列名称为Perfil_FK_ID
。
您尚未提供有关Usuario
和Perfil
之间关系的任何信息。根据您的模型,几种不同的方式可以配置关系。