代码改变世界

Visual Entity 使用(二)创建一对多关系

  麦舒  阅读(738)  评论(0编辑  收藏  举报

1、将 Products 表拖放到设计器上

 

2、Visual Entity 将会自动生成下面的代码

DataContext 代码

复制代码
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 实体类代码

复制代码
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 实体类

复制代码
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();
}
复制代码

运行结果如下:

编辑推荐:
· 如何编写易于单元测试的代码
· 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的设计模式综述
点击右上角即可分享
微信分享提示