NBear学习笔记(三)

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介:

上一篇一对多的关系说的不是很清楚,这篇补充一下。

这篇我们创建一个销售数据库,里面有两个表,一个是消费者表,也就是购买者表。 另一个是订单表。一个消费者有多个订单,一个订单只对应一个消费者。

step1: 创建数据库shopping

CREATE TABLE [dbo].[Buyer] (
    [ID] [int] IDENTITY (1, 1) NOT NULL ,
    [Name] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [Birthday] [datetime] NULL ,
    [Tel] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[Order] (
    [ID] [int] IDENTITY (1, 1) NOT NULL ,
    [Orderumber] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [Price] [money] NOT NULL ,
    [CommitTime] [datetime] NOT NULL ,
    [OrderStatus] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [UserID] [int] NOT NULL 
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[Buyer] ADD 
    CONSTRAINT [PK_Buyer] PRIMARY KEY  CLUSTERED 
    (
        [ID]
    )  ON [PRIMARY] 
GO

ALTER TABLE [dbo].[Order] ADD 
    CONSTRAINT [PK_Order] PRIMARY KEY  CLUSTERED 
    (
        [ID]
    )  ON [PRIMARY] 
GO

step2:

(1)安装下载的Nbear组件下dist\SetupNBearVsPlugin.exe插件(可自动生成实体类)

         (2)打开VS2005,新建一个空的解决方案,添加两个C#类库工程EntityDesigns和Entities,删除自动生成的class1.cs.

         (3)添加一个website的网站项目。

         (4)在Entities下添加Entities.cs, 在网站根目录下添加web.config文件和EntityConfig.xml文件.

         (5)修改web.config文件

<configSections>
<section name="entityConfig" type="NBear.Common.EntityConfigurationSection, NBear.Common"/>
</configSections>
<entityConfig>
<includes>
<add key="Sample Entity Config" value="~/EntityConfig.xml"/>
</includes>
</entityConfig>
<appSettings/>
<connectionStrings>
<add name="DbName" connectionString="Server=WDS;Database=NBearDB;Uid=sa;Pwd=sa"
       providerName="NBear.Data.SqlServer.SqlDbProvider"/>
</connectionStrings>

(6)在EntityDesigns目录下添加EntityDesignToEntityConfig.xml文件,内容如下:

<?xml version="1.0" encoding="utf-8" ?>
<EntityDesignToEntityConfiguration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<CompileMode>Debug</CompileMode>
<InputDllName>EntityDesigns.dll</InputDllName>   //实体设计类
<OutputNamespace>Entities</OutputNamespace>  //实体类
<OutputLanguage>C#</OutputLanguage>              //输出语言
<!--<OutputCodeFileEncoding>utf-8</OutputCodeFileEncoding>-->
<EntityCodePath>..\Entities\Entities.cs</EntityCodePath>   //实体类文件
<EntityConfigPath>..\website\EntityConfig.xml</EntityConfigPath>
<SqlSync enable="false">    //更改实体时,是否同步更新数据库,建议设为false,否则将清空现有数据库的数据
<SqlServerFolder>C:\Program Files\Microsoft SQL Server\80\Tools\Binn</SqlServerFolder>
<ServerName>WDS</ServerName>
<UserID>sa</UserID>
<Password>sa</Password>
<DatabaseName>Shopping</DatabaseName>
</SqlSync>
</EntityDesignToEntityConfiguration>

(7)在EntityDesigns目录下添加EntityDesigns.cs

(8)打开下载的Nbear组件下dist\NBear.Tools.DbToEntityDesign.exe程序 ,设置连接字符串,我的是这样:

   Server=WDS;Database=Shopping;Uid=sa;Pwd=sa  点击connect, 选择要生成的表,点击Generate Entities Design.将会得到下面的代码:

  生成实体如下

public interface Buyer : Entity
{
    [PrimaryKey]
    int ID { get; }
    [SqlType("nvarchar(50)")]
    string Name { get; set; }
    DateTime? Birthday { get; set; }
    [SqlType("nvarchar(50)")]
    string Tel { get; set; }
}

public interface Order : Entity
{
    [PrimaryKey]
    int ID { get; }
    [SqlType("nvarchar(50)")]
    string Orderumber { get; set; }
    decimal Price { get; set; }
    DateTime CommitTime { get; set; }
    [SqlType("nvarchar(50)")]
    string OrderStatus { get; set; }
    int UserID { get; set; }
}

 

我们有两种方法实现关联,

第一种:

image

第二种:我们也可以不加[MappingName("UserID")],但我们需要把数据库Order表的UserID字段改为Bperson_ID.

 

(9)编译EntityDesigns工程,编译成功,刚才添加Entities.cs,EntityConfig.xml文件将被自动填入正确的内容。

(10)为Entities工程引用NBear.Common,然后编译Entities工程。

(11)为WebSite添加Entities项目编译后的Entities.dll.再引用NBear.Data

(12)开始使用设计好的实体。

添加购买者记录:

image

添加Order记录(假定订单的主人ID为1)

image

得到订单主人ID为1的所有订单:

image

得到订单的主人

image

image

 

注: 本人也是刚开始学习NBear,把自己学习笔记记录下来。不知道是否理解正确,如果不对欢迎指出。

本文转自敏捷的水博客园博客,原文链接http://www.cnblogs.com/cnblogsfans/archive/2007/12/04/982872.html如需转载请自行联系原作者


王德水

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
相关文章
|
Kubernetes 网络协议 程序员
k8s 学习笔记 - LimitRange 限制范围
k8s 学习笔记 - LimitRange 限制范围
232 0
|
存储 C语言 C++
C++学习笔记(day1)
C++学习笔记(day1)
|
存储 消息中间件 弹性计算
尘央大佬带你学| 学习笔记
快速学习尘央大佬带你学。
尘央大佬带你学| 学习笔记
|
开发者
手动任务|学习笔记
快速学习手动任务
手动任务|学习笔记
|
开发工具 Android开发 iOS开发
快速开始|学习笔记
快速学习快速开始
112 0
快速开始|学习笔记
|
机器学习/深度学习 算法 开发者
神经元模型| 学习笔记
快速学习神经元模型。
神经元模型| 学习笔记
|
消息中间件 缓存 NoSQL
总结| 学习笔记
快速学习总结。
|
XML 设计模式 JavaScript
回顾 | 学习笔记
快速学习回顾,介绍了回顾系统机制, 以及在实际应用过程中如何使用。
|
算法 开发者 索引
FuzzyQuery|学习笔记
快速学习 FuzzyQuery。
230 0
|
人工智能 算法 开发者
SDV 要解决的问题 | 学习笔记
快速学习 SDV 要解决的问题