Классы сущностей генерируются как частичные классы, чтобы вы могли расширять эти классы с помощью других членов, таких как методы, поля и т. Д. Я бы добавил еще один частичный класс в проект репозитория, который реализует желаемый интерфейс. Этот интерфейс будет определен в вашем интерфейсе проекта. Таким образом, вы можете вернуть интерфейс из репозитория вместо определенного класса.
В вашем репозитории это автоматически генерируемая модель данных
public partial class EntityClass
{
public int MyProperty { get; set; }
public string String { get; set; }
public bool Boolean { get; set; }
}
Затем в том же проекте вы определяете частичный класс с тем же именем,Не забудьте оставить здесь то же самое пространство имен, что и для исходной автоматически сгенерированной модели!
public partial class EntityClass : IEntityClass
{
public int AnotherOne { get; set; }
}
И в своем проекте интерфейса вы можете добавить что-то вроде этого
public interface IEntityClass
{
int MyProperty { get; set; }
string String { get; set; }
bool Boolean { get; set; }
int AnotherOne { get; set; }
}
Помните, что этоочень громоздкий подход, потому что вы должны помнить, чтобы обновлять интерфейс всякий раз, когда вы меняете модель данных. Другой способ, который обычно используется, - определение DTO (объекта передачи данных).
Здесь кто-то задал похожий вопрос. Пожалуйста, прочитайте это.