0

NuGet 経由で Visual Studio にダウンロードした Entity Framework を使用して、ASP.Net Web ページ アプリケーションを拡張しました。プロパティに別の列名を割り当てようとすると、次のエラーが発生します。

CS0246: 型または名前空間名 'Column' が見つかりませんでした (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ので、問題がわかりません。

UPDATE My 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 に答える