Visual Entity 使用(二)创建一对多关系
2011-08-23 18:00 麦舒 阅读(738) 评论(0) 编辑 收藏 举报1、将 Products 表拖放到设计器上
2、Visual Entity 将会自动生成下面的代码
DataContext 代码

publicpartialclass NorthwindDataContext : NHibernate.Linq.NHibernateContext
{
public NorthwindDataContext(NHibernate.ISession session) :
base(session)
{
}
public NorthwindDataContext() :
base(CreateSession())
{
}
public System.Linq.IOrderedQueryable<Category> Categories
{
get
{
returnthis.Session.Linq<Category>();
}
}
public System.Linq.IOrderedQueryable<Product> Products
{
get
{
returnthis.Session.Linq<Product>();
}
}
publicstatic ISessionFactory CreateSessionFactory()
{
Configuration cfg;
cfg =new Configuration();
cfg.Configure();
ISessionFactory factory;
factory = cfg.BuildSessionFactory();
return factory;
}
publicstatic ISession CreateSession()
{
ISession session;
ISessionFactory factory;
factory = CreateSessionFactory();
session = factory.OpenSession();
return session;
}
}
Category 实体类代码

publicpartialclass Category
{
privateint _CategoryID;
privatestring _CategoryName;
privatestring _Description;
privatebyte[] _Picture;
private IList<Product> _Products;
publicvirtualint CategoryID
{
get
{
returnthis._CategoryID;
}
set
{
this._CategoryID = value;
}
}
publicvirtualstring CategoryName
{
get
{
returnthis._CategoryName;
}
set
{
this._CategoryName = value;
}
}
publicvirtualstring Description
{
get
{
returnthis._Description;
}
set
{
this._Description = value;
}
}
publicvirtualbyte[] Picture
{
get
{
returnthis._Picture;
}
set
{
this._Picture = value;
}
}
publicvirtual IList<Product> Products
{
get
{
returnthis._Products;
}
set
{
this._Products = value;
}
}
}
Product 实体类

publicpartialclass Product
{
privateint _ProductID;
privatestring _ProductName;
private System.Nullable<int> _SupplierID;
private System.Nullable<int> _CategoryID;
privatestring _QuantityPerUnit;
private System.Nullable<float> _UnitPrice;
private System.Nullable<short> _UnitsInStock;
private System.Nullable<short> _UnitsOnOrder;
private System.Nullable<short> _ReorderLevel;
privatebool _Discontinued;
private Category _Category;
publicvirtualint ProductID
{
get
{
returnthis._ProductID;
}
set
{
this._ProductID = value;
}
}
publicvirtualstring ProductName
{
get
{
returnthis._ProductName;
}
set
{
this._ProductName = value;
}
}
publicvirtual System.Nullable<int> SupplierID
{
get
{
returnthis._SupplierID;
}
set
{
this._SupplierID = value;
}
}
publicvirtual System.Nullable<int> CategoryID
{
get
{
returnthis._CategoryID;
}
set
{
this._CategoryID = value;
}
}
publicvirtualstring QuantityPerUnit
{
get
{
returnthis._QuantityPerUnit;
}
set
{
this._QuantityPerUnit = value;
}
}
publicvirtual System.Nullable<float> UnitPrice
{
get
{
returnthis._UnitPrice;
}
set
{
this._UnitPrice = value;
}
}
publicvirtual System.Nullable<short> UnitsInStock
{
get
{
returnthis._UnitsInStock;
}
set
{
this._UnitsInStock = value;
}
}
publicvirtual System.Nullable<short> UnitsOnOrder
{
get
{
returnthis._UnitsOnOrder;
}
set
{
this._UnitsOnOrder = value;
}
}
publicvirtual System.Nullable<short> ReorderLevel
{
get
{
returnthis._ReorderLevel;
}
set
{
this._ReorderLevel = value;
}
}
publicvirtualbool Discontinued
{
get
{
returnthis._Discontinued;
}
set
{
this._Discontinued = value;
}
}
publicvirtual Category Category
{
get
{
returnthis._Category;
}
set
{
this._Category = value;
}
}
}
运行下面的代码:
var dc =new NorthwindDataContext();
var categories = dc.Categories.ToList();
foreach (var category in categories)
{
foreach (var product in category.Products)
{
Console.WriteLine(product.ProductName);
}
Console.WriteLine();
}
运行结果如下:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述