据我所知,对于要保存在数据库中的属性,它不能是ReadOnly。 IIdentity属性:AuthenticationType,IsAuthenticated和Name都是ReadOnly。
是否将包装器设置为需要保存的唯一解决方案或更好的解决方案?
编辑: 我可能没有很好地解释我的问题。以下是其中一个ReadOnly属性的示例代码,我为Entity Framework添加了UserName属性:
Public Property UserName As String
Get
Return _userName
End Get
Private Set(value As String)
userName = value
End Set
Public ReadOnly Property Name As String Implements System.Security.Principal.IIdentity.Name
Get
Return UserName
End Get
End Property
我想问的是,是否有更好的方法。
答案 0 :(得分:1)
IIdentity
属性是只读的,但实现可以有setter。如果您使用EDMX映射don't have to expose these setters as public。
编辑:
这在C#中是可能的,所以希望你可以使用与VB.NET类似的方法(我只能阅读VB代码,而不是写):
public interface ITest {
string Name { get; }
}
public class Test : ITest {
public string Name { get; set; }
}
该类提供了setter,即使接口没有定义它。
答案 1 :(得分:0)
EF持久存储对象,而不是接口。您的对象可以具有您希望的任何属性。您无法向实体模型添加接口,但可以添加实现该接口的对象类型。