zoukankan      html  css  js  c++  java
  • NBear学习笔记(三)

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

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

    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
    版权:本文版权归作者所有,转载需经作者同意。

  • 相关阅读:
    3.8 java基础总结①多线程
    RPM Database 实战详解
    关于CentOS7.2 控制面板不显示输入法,或者无法调出输入的问题。(已解决)
    mysqldump
    一些有意思的Linux命令
    和docket的第一次亲密接触
    centos7根分区扩容(亲测有效)
    相识mongodb
    开机自动获取spark用户名和服务器
    Puppet日常总结
  • 原文地址:https://www.cnblogs.com/cnblogsfans/p/982872.html
Copyright © 2011-2022 走看看