2016-12-19 8 views
0

Я использовал базу данных Entity Framework несколько раз. Теперь я пытаюсь сначала подходить к коду. Я немного смущен в некоторых местах. Скажем, я хотел бы иметь два класса: ApplicationUser & CurrentUser. Все эти классы предназначены для использования той же таблицы базы данных Пользователи. Структура таблицы Users выглядит как-Использовать ту же таблицу db из разных объектов в Entity Framework. Сначала код

----------------------------------------------------------------------------------------------------------- 
UserId | FullName | Designation | LoginName | LoginPassword | CreatedDateTime | IsActive | FewOtherFields | 
----------------------------------------------------------------------------------------------------------- 

Вот классы детали-

//Will be used to add,edit, delete records for new user. 
ApplicationUser 
{ 
    UserId 
    FullName 
    Designation 
    LoginName 
    LoginPassword 
    CreatedDateTime 
    IsActive 
    ... 
    OtherProperties 
    ... 
} 

//Will be used to login and other purposes. 
CurrentUser 
{ 
    UserId 
    FullName 
    Designation 
    LoginName 
    LoginPassword 
    IsActive 
} 

Может быть, это легкая вещь, или есть хитрые методы для достижения этой цели. Любая помощь?

+0

CurrentUser является ApplicationUser. Какова причина наличия класса CurrentUser? Ваше намерение скрывать некоторые свойства? – JuanR

+0

Почему вы хотите, чтобы два разных класса представляли одно и то же? Если вы должны использовать 'CurrentUser', тогда проект' ApplicationUser' к нему (например, с '.Select()') – DavidG

+0

@ Хуан-Недвижимость скрывается является причиной. И еще немного вопросов. –

ответ

0

Вы можете использовать таблицу в иерархии стратегии наследования:

public class CurrentUser 
{ 
    //some properties 
} 

public class ApplicationUser : CurrentUser 
{ 
    //additional properties 
} 

public class MyContext : DbContext 
{ 
    public DbSet<CurrentUser> Users { get; set; } 
} 

Использование:

IQuerable<CurrentUser> currentUsers = context.Users; 
IQuerable<ApplicationUser> applicationUsers = context.Users.OfType<ApplicationUser>();