0

したがって、Iamはコードfirtを初めて使用し、データベースは既に作成されており、変更できません。コントローラーでクライアントを呼び出すと、このエラーが発生します。これは、存在しないEmpresa_idを検索するため、検索するように指示する方法です。正しいフィールド?

return View(clientes.ToPagedList(pageNumber, pageSize));

it return this select 
SELECT 
[Extent1].[id] AS [id], 
[Extent1].[name] AS [name], 
[Extent1].[empresa] AS [empresa],  
[Extent1].[Empresa_id] AS [Empresa_id]
FROM [dbo].[cliente] AS [Extent1]
ORDER BY [Extent1].[name] ASC}


public class cliente
    {
        [Key]
        public int id { get; set; }
        public string name { get; set; }
        public int empresa { get; set; } // foreing key

        public virtual empresa Empresa { get; set; }
   }

    public class empresa
    {
        [Key]
        public int id { get; set; }

        public string descripcion { get; set; }

        public virtual ICollection<cliente> Clientes { get; set; }
    }
4

1 に答える 1

0

empresaナビゲーションプロパティの外部キーであるEFを指定する必要がありますEmpresa。そうでない場合、デフォルトの外部キー名、つまり「NavigationPropertyName + UnderScore +KeyNameInTargetClass」=を想定しますEmpresa_id[ForeignKey]次の属性を適用することで、このデフォルトを上書きできます。

public class cliente
{
    [Key]
    public int id { get; set; }
    public string name { get; set; }

    [ForeignKey("Empresa")]
    public int empresa { get; set; }

    public virtual empresa Empresa { get; set; }
}
于 2012-07-11T13:45:43.407 に答える