使用entityframework执行linq的列无效

时间:2011-10-27 22:49:28

标签: c# asp.net entity-framework-4.1

我创建了这个类

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

1 个答案:

答案 0 :(得分:1)

您已创建类型为Perfil_FK的导航属性Perfil。但是您尚未指定要与该关系一起使用的外键列。因此,约定的EF假定外键列名称为Perfil_FK_ID

您尚未提供有关UsuarioPerfil之间关系的任何信息。根据您的模型,几种不同的方式可以配置关系。

相关问题