【问题标题】:Can ServiceStack OrmLite set a a property with a non-public setter?ServiceStack OrmLite 可以使用非公共设置器设置属性吗?
【发布时间】:2016-12-20 09:07:15
【问题描述】:

有没有办法让 ServiceStack OrmLite 在其设置器不公开时设置属性?这对于在某些情况下保持类更安全使用非常有用,例如当有 2 个依赖属性并且我希望用户调用一个方法来同时设置它们时。但是,OrmLite 在从数据库读取时仍然需要能够设置它们,所以如果它们可以是私有的那就太好了。一个人为的例子:

    public class MyObject
    {
        public string One { get; private set; }
        public string Two { get; private set; }

        public void SetOneOrTwo(bool one, string value)
        {
            if (one)
            {
                One = value;
                Two = null;
            }
            else
            {
                One = null;
                Two = value;
            }
        }
    }

【问题讨论】:

    标签: c# ormlite-servicestack


    【解决方案1】:

    不,OrmLite(与大多数 ServiceStack 一样)与代码优先 POCO 一起工作,并通过仅填充公共可写属性来尊重您的模型公共 API。

    【讨论】:

    • 但我真的希望我的 API 不受尊重! :)
    • 更严重的是,如果我想保存一些不属于公共 API 的数据该怎么办?
    • @EM0 公开。属性需要公开才能影响 RDBMS 表架构。
    猜你喜欢
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-02
    • 2016-11-26
    相关资源
    最近更新 更多