Entity framework 在EF中使用不可变、重复数据消除的EntityTypes
假设我有一个CRUD应用程序,允许用户管理他们的相册收藏:Entity framework 在EF中使用不可变、重复数据消除的EntityTypes,entity-framework,immutability,Entity Framework,Immutability,假设我有一个CRUD应用程序,允许用户管理他们的相册收藏: class Collection { int Id; string Name; List<Album> Albums //EF navigation property } class Album { int Id; List<CdCase> Cases; //EF navigation property string Name; string Artist
class Collection
{
int Id;
string Name;
List<Album> Albums //EF navigation property
}
class Album
{
int Id;
List<CdCase> Cases; //EF navigation property
string Name;
string Artist;
}
类集合
{
int-Id;
字符串名;
列出相册//EF导航属性
}
班级相册
{
int-Id;
列出案例;//EF导航属性
字符串名;
弦乐艺术家;
}
在这个应用程序中,我允许用户向他们的收藏中添加、编辑和删除相册。集合和相册使用实体框架存储在SQL Server数据库中
简单地说,将会有很多重复的相册,因此我想在收集时做以下几点:
- 重复数据消除:如果相册已存在(由姓名/艺术家相等性决定),则收藏将使用该相册,而不是创建新相册
- 不变性:如果编辑了相册,则编辑不会持久化到服务器。相反,相册将从案例中删除,并创建/链接新相册
- 垃圾收集:如果编辑/删除操作导致相册不再存在于任何收集中,则会将其从数据库中完全删除
集
行为),而不是在提交之前手动清理相册
编辑我使用的是代码优先EF 6.1。我认为这属于附加到实体的创建/更新/删除操作的存储过程。取决于EF版本和代码优先/db优先。