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