0

我已经使用我通过 NuGet 在 Visual Studio 中下载的实体框架扩展了我的 ASP.Net 网页应用程序。现在我收到以下错误,同时尝试为属性分配不同的列名。

CS0246:找不到类型或命名空间名称“列”(您是否缺少 using 指令或程序集引用?)

我的模型:

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Web;
using WebMatrix.Data;

namespace Models { 
    public class News
    {
        public int Id { get; set; }

        [Column("d_date")]
        public DateTime Date { get; set; }

        [Column("m_text")]
        public string Text { get; set; }
    }
}

ColumnAttribute应该在System.ComponentModel.DataAnnotations.Schema,所以我无法理解这个问题。

更新 我的 Web.Config 文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <connectionStrings>
    <add name="MyDatasource" connectionString="server=localhost; database=testdb; User Id=***; Password=***;" providerName="System.Data.SqlClient" />
  </connectionStrings>
  <system.web>
    <customErrors mode="Off" />
    <compilation debug="true" targetFramework="4.0">
      <assemblies>
        <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
      </assemblies>
    </compilation>
  </system.web>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
  </system.webServer>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
  </entityFramework>
</configuration>
4

2 回答 2

2

在 Entity Framework 5 中,ColumnAttribute 被移动到另一个名为 System.ComponentModel.DataAnnotations.Schema 的命名空间中。因此,如果您使用的是 EF 5,则需要添加一个 using 语句以将该命名空间也包含在您的模型类中

 using System.ComponentModel.DataAnnotations;
 using System.ComponentModel.DataAnnotations.Schema;
于 2013-04-29T16:43:06.577 回答
2

将我的应用程序升级到 .Net 4.5 后,它终于按预期工作了。看起来 EF 5 与 .Net 4.0 不完全兼容。

于 2013-04-30T17:48:30.510 回答