У меня есть два связанных класса, которые имеют общий интерфейс и оба хранятся в одной и той же базовой таблице базы данных. Однако Entity Framework генерирует один общий класс, где мне действительно нужны два разных класса. Как мне решить эту проблему? Лучше всего использовать базовый класс, а не интерфейс? Как изменить модель EF, чтобы два класса отображались в одной таблице?
Редактировать: свойство AccountType определяет тип класса; пользователь или группа.
Какой-то простой код:
public interface IAccount
{
string Name { get; set; }
AccountType AccountType { get; set; }
}
public class GroupAccount : IAccount
{
public string Name { get; set; }
public GroupType GroupType { get; set; }
public AccountType AccountType { get; set; }
}
public class UserAccount : IAccount
{
public string Username { get; set; }
public string Password { get; set; }
public string Name { get; set; }
public AccountType AccountType { get; set; }
}





Различают ли эти данные? т.е. определяет ли AccountType, какой это тип? Если так:
После этого тип учетной записи должен полностью исчезнуть из объекта Account (в противном случае отмените отображение). Чтобы получить только записи UserAccount, вы используете
.Accounts.OfType<UserAccount>()...
В этой модели класс Account, вероятно, должен быть абстрактным. Материал интерфейса может быть добавлен через частичный класс, то есть в отдельный файл, определите:
partial class Account : IAccount {
// extra code here
}
так далее
Разумное пошаговое руководство - здесь.