Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework EntityFramework SqlQuery不适用于自定义映射(DataAnnotation列)_Entity Framework_Ef Code First_Data Annotations_Code First - Fatal编程技术网

Entity framework EntityFramework SqlQuery不适用于自定义映射(DataAnnotation列)

Entity framework EntityFramework SqlQuery不适用于自定义映射(DataAnnotation列),entity-framework,ef-code-first,data-annotations,code-first,Entity Framework,Ef Code First,Data Annotations,Code First,我在VS 2012中使用EF 5.0(CodeFirst),在使用SqlQuery进行查询时遇到问题。问题发生在实体的属性名和数据库中列的名称之间的映射中 我的实体(模型): 当我运行查询时,我得到一个错误 罗廷: List<TesteEntity> list = dataContext.Database.SqlQuery<TesteEntity>("SELECT * FROM Teste").ToList(); 数据库中的表结构: CREATE TABLE [dbo]

我在VS 2012中使用EF 5.0(CodeFirst),在使用SqlQuery进行查询时遇到问题。问题发生在实体的属性名和数据库中列的名称之间的映射中

我的实体(模型):

当我运行查询时,我得到一个错误

罗廷:

List<TesteEntity> list = dataContext.Database.SqlQuery<TesteEntity>("SELECT * FROM Teste").ToList();
数据库中的表结构:

CREATE TABLE [dbo].[Teste](     [Id] [int] IDENTITY(1,1) NOT NULL,
    [IsAdministrator] [bit] NOT NULL,   [Name] [nvarchar](max) COLLATE
Latin1_General_CI_AS NOT NULL,  CONSTRAINT [PK_dbo.Teste] PRIMARY KEY
CLUSTERED  (    [Id] ASC )WITH (PAD_INDEX  = OFF, IGNORE_DUP_KEY = OFF)
ON [PRIMARY] ) ON [PRIMARY]
显然,当我获取DataAnnotation[Column(“Teste_Id”)]并重新创建表时,一切都正常,但我想知道是否必须使用DataAnnotation[Column(“Teste_Id”)]执行此查询


谢谢

请按如下方式编写此代码:

[Table("Teste")]
public class TesteEntity
{
    [Column("TesteId")]
    [Key]
    public int Id { get; set; }

    [Required]
    public bool IsAdministrator { get; set; }

    [Required]
    public string Name { get; set; }
}
public class Teste
{
    public int TesteId{ get; set; }

    [Required]
    public bool IsAdministrator { get; set; }

    [Required]
    public string Name { get; set; }
}
我建议您编写代码,说明EF CF如何工作良好。您的代码如下所示:

[Table("Teste")]
public class TesteEntity
{
    [Column("TesteId")]
    [Key]
    public int Id { get; set; }

    [Required]
    public bool IsAdministrator { get; set; }

    [Required]
    public string Name { get; set; }
}
public class Teste
{
    public int TesteId{ get; set; }

    [Required]
    public bool IsAdministrator { get; set; }

    [Required]
    public string Name { get; set; }
}

错误仍然存在。我使用:[Column(“Teste_Id”)]public int Id{get;set;}的原因是我的实体将继承一个BaseEntity(具有Id属性的抽象类)。