จริงๆ แล้ว คำถามนี้ซับซ้อนกว่าที่อธิบายไว้ ฉันเป็นมือใหม่ใน nhibernate และฉันต้องการแมปตารางด้วยคอลัมน์คีย์ต่างประเทศ ในตัวอย่างไฮเบอร์เนตส่วนใหญ่ โดยทั่วไปการกำหนดคอลัมน์คีย์นอกจะถูกนำไปใช้โดยการตั้งค่าเอนทิตีที่อ้างอิง ฉันหมายถึง ถ้าฉันมีคอลัมน์ CategoryId ฉันก็จำเป็นต้องมีคุณสมบัติ Category และในตัวอย่างที่ฉันได้ดู โดยทั่วไปคุณสมบัติ Category จะถูกตั้งค่าไว้ ในกรณีของฉัน ฉันไม่ต้องการตั้งค่าคุณสมบัติเอนทิตี แต่เป็นคุณสมบัติคีย์ต่างประเทศแทน
public class Post
{
public virtual long Id { get; set; };
public virtual string Content { get; set; };
public virtual long CategoryId { get; set; };
public virtual Category Category { get; set; };
}
ฉันไม่ต้องการตั้งค่าคุณสมบัติหมวดหมู่เมื่อฉันพยายามบันทึกเอนทิตี Post ดังตัวอย่างด้านล่าง
Post post = new Post { Content = "content", Category = aCategoryEntity };
session.Save(post);
ตัวอย่างด้านล่างนี้เป็นวิธีที่ฉันต้องการนำไปใช้
Post post = new Post { Content = "content", CategoryId = 3 };
session.Save(post);
ฉันจะกำจัดสิ่งนั้นได้อย่างไร?