gpt4 book ai didi

fluent-nhibernate - 映射枚举列表

转载 作者:行者123 更新时间:2023-12-01 12:01:30 26 4
gpt4 key购买 nike

我有一个名为 UserPermissions 的表,它通过 userId 到用户表的 FK,然后是一个字符串列,用于枚举的字符串值。

我看到的错误是 NHibernate.MappingException:来自表 UserPermissions 的关联引用了一个未映射的类:GotRoleplay.Core.Domain.Model.Permission

我的权限枚举:

    public enum Permission
{
[StringValue("Add User")]
AddUser,

[StringValue("Edit User")]
EditUser,

[StringValue("Delete User")]
DeleteUser,

[StringValue("Add Content")]
AddContent,

[StringValue("Edit Content")]
EditContent,

[StringValue("Delete Content")]
DeleteContent,
}

我的用户类中的属性:

public virtual IList<Permission> Permissions { get; set; }

我的数据库表:

CREATE TABLE dbo.UserPermissions
(
UserPermissionId int IDENTITY(1,1) NOT NULL,
UserId int NOT NULL,
PermissionName varchar (50) NOT NULL,

CONSTRAINT PK_UserPermissions PRIMARY KEY CLUSTERED (UserPermissionId),
CONSTRAINT FK_UserPermissions_Users FOREIGN KEY (UserId) REFERENCES Users(UserId),
CONSTRAINT U_User_Permission UNIQUE(UserId, PermissionName)
)

我尝试映射我的用户对象的权限属性:

HasManyToMany(x => x.Permissions)
.WithParentKeyColumn("UserId")
.WithChildKeyColumn("PermissionName")
.WithTableName("UserPermissions")
.LazyLoad();

我做错了什么,它无法将权限映射到枚举值列表?

最佳答案

这是对我有用的方式

HasMany(x => x.Licences)
.WithTableName("DriverLicence")
.AsElement("Level").AsBag();

查看此处了解更多信息 answer

关于fluent-nhibernate - 映射枚举列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/901072/

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