我已经定义了一个包含createby,createdate,modifyby和modifydate属性的类,这些属性由其他类继承{因此我不必在具有这些字段的所有实体中创建字段}。我的代码是
public class SMSModelBaseClass
{
[Required]
[StringLength(50)]
[Column(TypeName ="varchar")]
[ScaffoldColumn(false)]
public string CreateById { get; set; }
[Required]
[ScaffoldColumn(false)]
public DateTime CreateDate { get; set; }
[Required]
[StringLength(50)]
[ScaffoldColumn(false)]
[Column(TypeName = "varchar")]
public string ModifyById { get; set; }
[Required]
[ScaffoldColumn(false)]
public DateTime ModifyDate { get; set; }
[ForeignKey("CreateById")]
public virtual ApplicationUser CreateBy { get; set; }
[ForeignKey("ModifyById")]
public virtual ApplicationUser ModifyBy { get; set; }
}
我遇到了主题错误。我知道我可以为它引入一个主键,但它会被其他类继承,这是我不想要的。
是否可以使用流畅的api或数据注释来绕过此错误?
答案 0 :(得分:0)
使用EntityFramework,每个实体都需要一个密钥属性。
通常这是一个Id
列
它可能是一个复合键,但根据您的模型,我建议Id
SMSModelBaseClass
属性
作为旁注,如果您将SMSModelBaseClass
用作基类,并且不直接实例化,我相信abstract
也应该是// routes
$stateProvider
.state('todolist', {
url: '/todo-list',
views: {
'@': {
...,
controller: 'ListsController'
}
}
})
.state('todolist.add', {
url: '/list/add',
onEnter: ['$state', '$uibModal', function ($state, $uibModal) {
$uibModal.open({
...,
controller: 'FormListModalController' // <- in this controller I need to access the $scope from the parent
}).result.finally(function () {
...
});
}]
})...