Неверный столбец, выполняющий linq с entityframework - PullRequest
0 голосов
/ 28 октября 2011

Я создал этот класс

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 Ответ

1 голос
/ 28 октября 2011

Вы создали навигационное свойство Perfil_FK типа Perfil. Но вы не указали столбец внешнего ключа, который будет использоваться с этим отношением. Таким образом, EF по соглашениям предполагает, что имя столбца внешнего ключа Perfil_FK_ID.

Вы не предоставили никакой информации об отношениях между Usuario и Perfil. Существует несколько различных способов настройки отношений в зависимости от вашей модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...