无效的列正在执行与entityframework的连接

本文关键字:entityframework 连接 执行 无效 | 更新日期: 2023-09-27 18:12:32

我创建了这个类

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'.问题可能是什么?对我来说代码是

无效的列正在执行与entityframework的连接

创建类型为Perfil的导航属性Perfil_FK。但是您没有指定用于该关系的外键列。因此,EF按照约定假定外键列名为Perfil_FK_ID

你没有给出任何关于UsuarioPerfil之间关系的信息。根据您的模型,有几种不同的方法来配置关系。