NHibernate可视化设计插件——Mindscape.NHibernateModelDesigner

CloudKit大凡苹果最新推出的冲iCloud的一个云端数据存储服务.其
主要出于下两片段构成:

自己直接想NHibernate能够支持像EF一样支持可视化操作,今天去网上搜了瞬间,发现发生一个插件,类似EF的可视化功能。

  • 一个仪表web页面,用于管理明白数据的记录类型.
  • 一组API接口,用于iCloud和配备里的数目传递.

下载地址:Mindscape.NHibernateModelDesigner_crack.vsix

鉴于笔者也是开始接触iCloud云存储数据,花了部分时空上了瞬间,网上能参照的资料不多,很多地方来晓不透,或者不对的,还伸手见谅!如果您发双重好的参阅文档或者博客介绍,还恳请留言告知,不胜感激!!!

下载后,运行Mindscape.NHibernateModelDesigner_crack.vsix,进行安装,安装好之后,在新建项目之时光,就见面发觉大多了之类模版:

随即首稿子主要介绍第一个知识点,在Xcode中拉开iCloud云服务,和人品web页面的片段介绍和操作…

 图片 1图片 2图片 3图片 4图片 5图片 6

一. Xcode启用iCloud

先是,新建项目后,要保管您的Apple
ID是一个有效的开发者账号;并当General -->Identity
下的Team选项,选择你的开发者账号,这边的开发者账号,必须是实用的开发者账号,并包您的Bundle Identifier是唯一的;
下一场,设置权限和容器,选择Capabilities–>启用iCloud,如下图所示:

Capabilities启用iCloud

设前并未选择开发者账号的话,这时,可能得而登陆开发者账号;
最后,勾选CloudKit,这时Containers下之选取项就不过点了,选择Use default container:

选择Use default container

一经发左提示,一般点击Fix issue 之后,Xcode会帮咱修复;
这么Xcode里面就是设置好了…

注意: 这里的开发者账号只要生相应的证件,而且关系之Apple
ID中启用了iCloud:

appleid启用iCloud

假设,已产生id, 可以点击Edit拓展启用.

于是了EF的爱人应特别熟悉,这个界面就跟EF的可视化界面非常相似了。

二. CloudKit Dashboard简介

  1. 点击上图中之 CloudKit Dashboard,可以进来网页的仪表盘的主界面:

CloudKit Dashboard

下面,介绍一下以此界面:

  • SCHEMA :
    CloudKit容器的高等级类:Record Types, Security Roles, 和Subscription
    Types,其中首要以的凡Record Types;
    一个Record
    Type用来定义一个独门的记录(可以领略吧一个数据模型),相当给储存数据的模版,和数据库的阐明结构类似;

  • PUBLIC DATAPRIVATE DATA
    就你保存数据的地方,开发者可以查看所有的共享数据,但是只能望自己之私密数据,无法观用户的私密数据;这里没有显得PRIBATE
    DATA,其布局及PUBLIC DATA是同样的;
    User Records 记录有时使用者的消息;
    Default Zone :这里可以查看数据的详细信息,也是末端要运用的;

  • ADMIN 主要是管制开发者团队权限的,这里不做过多介绍;

2.添加Record Type :
这数据模型可以于此手动设置,也可是当程序保存数据到iCloud时自动生成,程序中安了争性,这里虽会来得怎么;

  • 下介绍一下手动设置:

纯属回Record Type选项,点击右侧边栏的左上角的 “+ “,新增一个模子:

添加Record Type

输入型名称:
默认只发一个StringField的性能(这里权且这么称呼吧),可以点击下面的Add
Field… 新增属性列表;

平好选取属性的种类,如下图:

Add Field

设置好后,点击右侧下角的 Save按钮即可保存!这样,一个模型就成立好了…

3.上加相同久数:
切换回PUBLIC DATA 选项下的 Default Zone ,可能是这么的:

Default Zone

点击 Add Record ID Query Index 后,会化为如下界面:

立即是一个缺损的存储器,还没有保留任何数据;

点击右侧边栏左上比的”+” ,或者右边栏中间的New Record
,即可新建一长长的数;
这儿会发觉,其数据结构和正好创建的模型一致,填写相应的多少即可:

New Record

接下来,点击右侧下角的保存,即可生成一久记下;当然,生成之后的记录,也是可编写的…

另外,数据模型(即Record
Type)可能会见频频一栽,本示例被本人设置了零星种植,一个名称为test,一个名称也Note,切换回Record
Type可查其他一个模:

Note

那,怎么亮Default Zone里选择的凡何人模型也?
回去Default
Zone,中间蓝色区域之右手上比的称号旁有只倒三角,这里可以择采取(查询)哪个模型下的数目:

切换Record Type

此间只有区区单模型…

精心之见面发现,在Record Type中的Note模型下发出雷同执小字:1 Public Record ,1
Private
Record,意思是:使用模型Note的起同一久公共数据,一久隐私数据,由于自己登陆的iCloud账号和开发者账号不同等,相当于是用户账号,所以这里是看不到大苦数据的.

这些操作都比较简单,在我们后使用代码保存数据及iCloud时得以以这边翻保存的消息详情,当前只得查看公共的;
相关API的使用,请参考[iCloud]CloudKit简单用.

开拓服务器资源管理器,然后连接受Northwind数据库

(完)

 图片 7

拖放之后,将见面自动生成如下类

 图片 8

俺们来拘禁下此变化的类似的源码

图片 9图片 10

using System;
using System.Collections.Generic;
using NHibernate.Cfg;
using NHibernate.Validator.Constraints;

namespace Shop.Domain
{
  [System.CodeDom.Compiler.GeneratedCode("NHibernateModelGenerator", "1.0.0.0")]
  public partial class Customer
  {
    [NotNull]
    [Length(Max=5)]
    public virtual string CustomerId { get; set; }
    [NotNull]
    [Length(Max=40)]
    public virtual string CompanyName { get; set; }
    [Length(Max=30)]
    public virtual string ContactName { get; set; }
    [Length(Max=30)]
    public virtual string ContactTitle { get; set; }
    [Length(Max=60)]
    public virtual string Address { get; set; }
    [Length(Max=15)]
    public virtual string City { get; set; }
    [Length(Max=15)]
    public virtual string Region { get; set; }
    [Length(Max=10)]
    public virtual string PostalCode { get; set; }
    [Length(Max=15)]
    public virtual string Country { get; set; }
    [Length(Max=24)]
    public virtual string Phone { get; set; }
    [Length(Max=24)]
    public virtual string Fax { get; set; }

    private IList<Order> _orders = new List<Order>();

    public virtual IList<Order> Orders
    {
      get { return _orders; }
      set { _orders = value; }
    }

    static partial void CustomizeMappingDocument(System.Xml.Linq.XDocument mappingDocument);

    internal static System.Xml.Linq.XDocument MappingXml
    {
      get
      {
        var mappingDocument = System.Xml.Linq.XDocument.Parse(@"<?xml version='1.0' encoding='utf-8' ?>
<hibernate-mapping xmlns='urn:nhibernate-mapping-2.2'
                   assembly='" + typeof(Customer).Assembly.GetName().Name + @"'
                   namespace='Shop.Domain'
                   >
  <class name='Customer'
         table='`Customers`'
         >
    <id name='CustomerId'
        column='`CustomerID`'
        >
      <generator class='identity'>
      </generator>
    </id>
    <property name='CompanyName'
              column='`CompanyName`'
              />
    <property name='ContactName'
              column='`ContactName`'
              />
    <property name='ContactTitle'
              column='`ContactTitle`'
              />
    <property name='Address'
              column='`Address`'
              />
    <property name='City'
              column='`City`'
              />
    <property name='Region'
              column='`Region`'
              />
    <property name='PostalCode'
              column='`PostalCode`'
              />
    <property name='Country'
              column='`Country`'
              />
    <property name='Phone'
              column='`Phone`'
              />
    <property name='Fax'
              column='`Fax`'
              />
    <bag name='Orders'
          inverse='false'
          >
      <key column='`CustomerID`' />
      <one-to-many class='Order' />
    </bag>
  </class>
</hibernate-mapping>");
        CustomizeMappingDocument(mappingDocument);
        return mappingDocument;
      }
    }
  }
}

View Code

斯近乎中蕴含了扭转的model类和xml映射文件

 图片 11图片 12图片 13图片 14

 这里自己只是简单的牵线是这么一个插件,这个差件自动生成了俺们得之映射类和安排文件,以及数据库配置文件,以及NHibenate辅助类,有矣这些东西,我们便足以好便利的展开开了,只要Ctrl+C,Ctrl+V。具体的使办法,大家可错过参考达同样首:Hibernate学习笔记—使用
NHibernate构建一个ASP.NET
MVC应用程序