首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IPrincipal/IIdentity的实体框架与实现

IPrincipal/IIdentity的实体框架与实现
EN

Stack Overflow用户
提问于 2011-08-25 01:13:10
回答 2查看 424关注 0票数 1

据我所知,对于要保存在数据库中的属性,它不能为ReadOnly。IIdentity属性: AuthenticationType、IsAuthenticated和Name都是ReadOnly。

对需要保存的属性进行包装是唯一的解决方案,还是有更好的解决方案?

编辑:我可能没有很好地解释我的问题。下面是一个ReadOnly属性的示例代码,我已经为实体框架添加了UserName属性:

代码语言:javascript
复制
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

我想问的是,有没有更好的方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-02 22:25:33

IIdentity属性是只读的,但实现可以有setter。如果你使用EDMX来映射你的don't have to expose these setters as public

编辑:

这在C#中是可能的,所以希望你可以在VB.NET中使用类似的方法(我只能读VB代码,不能写):

代码语言:javascript
复制
public interface ITest {
    string Name { get; }
}

public class Test : ITest {
    public string Name { get; set; }
}

即使接口没有定义setter,该类也提供了setter。

票数 1
EN

Stack Overflow用户

发布于 2011-08-25 01:21:43

EF持久化对象,而不是接口。您的对象可以具有您希望它具有的任何属性。不能向实体模型添加接口,但可以添加实现该接口的对象类型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7179539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档