如何在 DNN 7+ 中将组合密钥与 DAL2 一起使用



我在 DNN 2+ 中使用 DAL7。

我有一个数据库表,其中包含从 2-varchar(50( 字段创建的主键。

在对象的属性中声明多字段主键的正确方法是什么?
我通常做:

[PrimaryKey("myField")]

我应该只添加第二个主键属性吗?

问题的第二部分是如何从数据库中获取数据。
我想使用 GetById(( 函数,因为它包含缓存,但它似乎不支持多个字段。 我是否坚持使用 Find(( 方法并手动处理缓存,或者选择使用多字段主键的对象的最佳方法是什么?

"像看屏幕一样看天空!">

DAL2 不支持组合键。

我发现解决此限制的最佳方法是修改数据库表。 我使用自动递增的 int 'id' 字段作为主键,并对我希望用作组合键的字段设置唯一约束。

这将需要 .要使用的 find(( 方法,用于防止缓存。 如果需要缓存,则必须手动完成。 手动设置缓存时,也应手动清除缓存。 如果使用存储库技术,请确保在更新或删除对象时清除缓存。

"像看屏幕一样看天空!">

最新更新