我当前的设置:
我有一个带有一些属性的实体对象,其中一个int Id
. 为了与数据库通信,我创建了一个存储库,其中包括以下方法:
public int Add(TEntity entity)
{
ObjectSet.AddObject(entity);
return entity.Id;
}
(它是一个通用存储库,需要它TEntity
是 a class
,并且它实现了IEntity
,这只是一个带有int Id
属性的接口。)
我的问题:
现在,当我想创建一个新实体以添加到存储库时,我需要给它一个 id。但是,这不允许 EF 自动为我生成 id,因为它已经有一个值。
可能的解决方案:
我只能想到这两种可能性。
- 使
Id
属性可以为空 - 而是将 an 传递
EntryInputModel
给存储库,然后在那里进行映射。
目前我EntryInputModel
在我的控制器中绑定,并将其映射到Entry
使用AutoMapper。如果我需要更改它,我还需要重新考虑我的项目中的依赖关系,因为...InputModel
和...ViewModel
类目前仅可用于我的 Web 应用程序。
哪个更可取?有没有更多的方法来解决这个问题?