Я расширил приложение ASP.Net Web Pages с помощью платформы Entity Framework, которую я загрузил в Visual Studio через NuGet. Теперь я получаю следующую ошибку, пытаясь назначить другое имя столбца правилу.Ошибка при использовании ColumnAttribute для EF-модели
CS0246: тип или пространство имен имя 'Column' не может быть найден (являются Соскучились с помощью директивы или ссылка на сборку?)
Моя модель:
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 Мой 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>
Атрибут находится под System.ComponentModel.DataAnnotations –
Я думаю, что это зависит от версии EF, которую он использует, он жил там, но теперь он находится в System.ComponentModel.DataAnnotations.Shema (с EF 5 I думать). Я бы проверял, что вы ориентируетесь на .NET 4.5 и ссылаетесь на последнюю версию EF. – blins
Я просто понял, что, хотя NuGet сказал мне в другом случае, у меня вместо EF включен EF 4.4. Пожалуйста, взгляните на мой Web.Config. Может быть, проблема? – android