gpt4 book ai didi

c# - EF 代码首次映射的 "State objects"- 完全隐藏?

转载 作者:太空宇宙 更新时间:2023-11-03 13:12:26 26 4
gpt4 key购买 nike

由于多次尝试使用 EF Code First 映射我的一个聚合而没有将其转化为完整的贫血域模型,在经历了一个纯粹的挫折之后,我最近偶然发现了 this blog entry来自 Vaughn Vernon,描述了一个漂亮的解决方案,它不涉及荒谬的映射尝试、“DAO”等,而是干净的域实体和状态对象,这让 EF 完美地完成了它的工作。

现在,该解决方案有一个小缺陷,我想知道是否有任何方法可以消除它:为了从客户端“隐藏”state 对象(并且让它们仅供 EF 访问),Vaughn 将“状态”访问器和“状态构造函数”表示为内部。当所有东西都被推到一个只能从外部访问的库项目中时,这很好用,但是在大多数情况下,域分布在多个模块等中,这意味着我必须公开成员公开 - 从而暴露域中的技术问题实体给客户(他们可以使用..或滥用)。

是否有可能从客户端访问中隐藏状态对象

最佳答案

你可以...

a) 添加 [assembly:InternalsVisibleTo("FriendAssemblyName")] assembly attribute给你的AssemblyInfo.cs ,只要你知道你所有的 friend 集会,或者

b) 使用 explicit interface implementation向不将您的对象转换到专用界面的用户隐藏该属性,例如IState<T> , 或者

c) 添加 [EditorBrowsable(EditorBrowsableState.Never)] attribute从 IntelliSense 中隐藏属性。

关于c# - EF 代码首次映射的 "State objects"- 完全隐藏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27911429/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com