gpt4 book ai didi

c# - 如何在 Fluent NHibernate 中映射 IDictionary

转载 作者:可可西里 更新时间:2023-11-01 09:03:37 26 4
gpt4 key购买 nike

我有一个带有 IDictionary 的类。

  <map name="CodedExamples" table="tOwnedCodedExample">
<key>
<column name="OwnerClassID"/>
</key>
<index type="string" column="ExampleCode"/>
<many-to-many class="CodedExample" column ="CodedExampleClassID"/>
</map>

如您所见,它使用多对多从其表中获取 CodedExamples,使用 tOwnedCodedExample 表查找哪些属于 OwnerClass。

我意识到这是一个非常基本的(希望是标准的)映射,但我正在苦苦挣扎,找不到任何文档,因此非常感谢任何可能的帮助。

非常感谢

斯图

最佳答案

我有一个工作示例,这应该让您清楚。

类:

public class Customer : Entity
{
public IDictionary<string, Book> FavouriteBooks { get; set; }
}

public class Book : Entity
{
public string Name { get; set; }
}

然后是 map :

HasManyToMany<Book>(x => x.FavouriteBooks)
.Table("FavouriteBooks")
.ParentKeyColumn("CustomerID")
.ChildKeyColumn("BookID")
.AsMap<string>("Nickname")
.Cascade.All();

生成的 xml:

<map cascade="all" name="FavouriteBooks" table="FavouriteBooks" mutable="true">
<key>
<column name="`CustomerID`" />
</key>
<index type="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<column name="`Nickname`" />
</index>
<many-to-many class="Domain.Book, Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
<column name="`BookID`" />
</many-to-many>
</map>

生成的 SQL:

create table "Customer" (
"Id" integer,
"FirstName" TEXT,
primary key ("Id")
)

create table FavouriteBooks (
"CustomerID" INTEGER not null,
"BookID" INTEGER not null,
"Nickname" TEXT not null,
primary key ("CustomerID", "Nickname")
)

create table "Book" (
"Id" integer,
"Name" TEXT,
primary key ("Id")
)

关于c# - 如何在 Fluent NHibernate 中映射 IDictionary<string, Entity>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2254176/

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