我正在尝试创建一个仅包含may app核心逻辑的类库。
我看过很多教程,但是它们在该库中包含EF核心。我想做的只是放所有这样的逻辑,通过传递string
添加一个类别(如果尚不存在)。
这是我想做的
manager
修改的模型,但我不希望它成为直接用作我的实体的类。我只希望它成为我的自定义实体的基类。例如,如果我必须添加新属性,则只需在主应用程序中更改实体。不在图书馆里。这是我到目前为止所得到的
// class library
public interface IBook{
// some properties here
ICollection<ICategory> Categories { get; set; }
// some more properties...
}
public interface ICategory{
// some properties here
ICollection<IBook> Books { get; set; }
// some more properties...
}
public class Book : IBook {
// implementations...
}
public class Category : ICategory {
// implementations
}
public class BookManager {
public void CreateBook(Book book) {
// some logic
// I'm not sure if I would pass Book or IBook
}
public void AddCategories(List<Category> categories) {
// some logic
// I'm not sure if I would pass Category or ICategory
}
}
// my main app
public class BookInfo {
// some props...
}
public class BookCategory {
// some props...
}
public class MyDB : DbContext{
public DbSet<BookInfo> BookInformations {get; set;}
public DbSet<BookCategory> BookCategories {get; set;}
}
问题
Book
。我不想使用流畅的API来重命名它。Discriminator
的新列。那是什么?我要删除吗?其他问题 我这样做对吗? 这是一个坏主意吗?请赐教。我不是初学者,但我还没有加入过真正的开发团队。
答案 0 :(得分:1)
1。我数据库中的表名是Book。我不想使用流畅的API来重命名它。
要给一个类一个不同的表名,您可以使用fluent API做到这一点,但是由于您不想这样做,可以为此使用[Table]
attribute:
[Table("BookTableName")]
public class Book : IBook {
// implementations...
}
2。我在它的新数据库中都将其称为Discriminator。那是什么?我要删除吗?
鉴别符列用于识别每一行代表哪种类型。 See the docs