【问题标题】:Linq to SQL: How do I generate Public Get and Protected Set propertyLinq to SQL:如何生成 Public Get 和 Protected Set 属性
【发布时间】:2013-11-21 19:13:17
【问题描述】:

我是 Linq To SQL 的新手。我正在使用 SQLMetal 生成类。该工具为表和表的列生成 Get 和 Set 属性。

在我的应用程序中,Data 对象只能在 Data Accessor 程序集中进行更新,但是该对象将被传递给许多其他程序集,因为它们需要访问数据。我不希望外部程序集修改数据。我希望他们使用 GET 属性来访问数据并拥有一个私有/内部集。

我如何实现这一目标?任何标准模式/实践?

提前致谢!

【问题讨论】:

    标签: c# linq linq-to-sql properties


    【解决方案1】:

    每个表类都需要另一个不可变类,您可以将数据投影到其中。 Linq to SQL 没有您所描述的设置,SQLMetal 也没有。

    您可以做的另一件事是修改these T4 templates 以实现您描述的行为。还有其他选择;像 Dapper 或 Massive 这样的 micro-ORM 可能更适合您的情况。

    进一步阅读
    LINQ to SQL and immutability

    【讨论】:

    • 感谢您的回复罗伯特。最初,我在考虑自己开发容器类并使用存储过程来选择/插入/更新数据的传统方法。这样我就可以完全控制课程的可访问性。我可以创建可以插入/更新数据并且只有 getter 属性的方法,以便数据本身是只读的。在这种情况下,最好的选择是什么 - LINQ 的自定义实现或数据容器的传统方法?
    猜你喜欢
    • 2021-01-08
    • 2015-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    • 1970-01-01
    • 2010-11-29
    • 1970-01-01
    相关资源
    最近更新 更多