Сделал модель:
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Server.DB
{
[Serializable]
[Table("users")]
public class UserDTO : AbstractDto {
[Key]
[Column("id")]
[Display(Name = "Идентификатор пользователя")]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public UInt32 ID { get; set; }
[Column("login")]
[Required]
[Display(Name = "Логин (он же E-Mail) пользователя - невидим для других")]
[MaxLength(32)]
public string Login { get; set; }
[Column("password")]
[Required]
[Display(Name = "Пароль пользователя")]
[MaxLength(24)]
public string Password { get; set; }
[Column("nick")]
[Required]
[Display(Name = "Отображаемый для всех ник пользователя")]
[MaxLength(16)]
public string Nick { get; set; }
}
}
далее, код коннектора:
using System;
using System.Data.Entity;
using System.Data.Entity.ModelConfiguration.Conventions;
using MySql.Data.Entity;
namespace Server.DB.DataAccess {
[DbConfigurationType(typeof(MySqlEFConfiguration))]
public class EntityContext : DbContext, IEntityContext {
public EntityContext() : base("name=DBConnector") { }
public DbSet<UserDTO> Users { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
base.OnModelCreating(modelBuilder);
}
}
}
При попытки простого Select-а:
var query = UnitOfWorkFactory.Instance.Get.EntityContext.Set<UserDTO>().AsQueryable();
query = query.Where(q => q.Login == "test@test.ru");
query = query.Where(q => q.Password == "1234");
UserDTO user = query.ToList()[0];
Получаю исключение:
Необработанное исключение типа "System.Data.Entity.ModelConfiguration.ModelValidationException" в EntityFramework.dll
Дополнительные сведения: One or more validation errors were detected during model generation:
Server.DB.DataAccess.UserDTO: : EntityType 'UserDTO' has no key defined. Define the key for this EntityType.
Users: EntityType: EntitySet 'Users' is based on type 'UserDTO' that has no keys defined.
Вот настройки соединения:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<connectionStrings>
<add name="DBConnector"
providerName="MySql.Data.MySqlClient"
connectionString="server=192.168.56.6;port=3306;database=ogame;uid=*****;password=*****"/>
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"/>
<providers>
<provider invariantName="MySql.Data.MySqlClient"
type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"/>
<provider invariantName="System.Data.SqlClient"
type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
</providers>
</entityFramework>
</configuration>
Подскажите, в чём ошибка, и как можно заставить EF6 посмотреть на схему? С EF6 до этого не работал.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Каким способом можно перехватить запуск файла через приложение?
На форме не отображаются некоторые элементы, а некоторые отображаются не полностью
Необходим старт в данной темеДля начала, хотелось бы создать AVD*+PC(клиент-сервер)
Используется Visual Studio 2015 Mindjet MindManager 172