使用LINQS 0.0.6描述数据库模型和创建数据库2011-09-16 博客园 a_a大家好,a_a写文档的经验有限,不过从今天开始我会尝试将刚刚发布的LINQS 0.0.6通过文档介绍给 大家。其实使用LINQS应该是件非常简单惬意的事情,今天我们先来看看其中最简单的描述数据库模型并通过 它来创建物理数据库。在开始前,也许您会愿意通过发布文档了解一下“什么是LINQS 0.0.6”,以及使用LINQS 0.0.6的基 本需求。一、描述一个简单的名片数据库模型:首先添加对Katmai项目和Xbb.Data.SqlServerModel.Katmai命名空间的引用,这个命名空间提供SQL Server 2008业务对象的描述服务。var profession = new Table { Name = "Profession", Columns = new IColumn[] { new Column { Name = "Name", Type = new NVarChar(50) } } }; var r = new Database { Name = "NameCards", Tables = new Table[] { new Table { Name = "Person", Columns = new IColumn[] { new Column { Name = "Name", Type = new NVarChar(50) }, new Column { Name = "Age", Type = new Int() }, new AssociationColumn { Name = "ProfessionID", Table = profession } } }, profession } };这段代码描述了名片数据库中的专业(类型)和人物两个表以及我们关心的一些列,下面这段代码帮 我们创建“ID”、“RowGuid”和最后修改时间等系统列:foreach (var t in r.Tables) { if (t.PrimaryKey == null) { var id = new IdentityColumn(t.Name + "ID"); t.Columns = new Column[] { id }.Concat(t.Columns); t.IdentityColumn = id; t.PrimaryKey = new IColumn[] { id }; t.Keys = new IEnumerable<IColumn>[] { t.PrimaryKey }; } var rowGuid = new RowGuidColumn { }; var modifiedDate = new ModifiedDateColumn { }; t.RowGuidColumn = rowGuid; t.Columns = t.Columns.Concat(new Column[] { rowGuid, modifiedDate }); }至此一份数据库模型描述就完成了,大家可以在源代码中的 “_KatmaiKatmaiKatmaiDescriptorSample.cs”中找到类似的描述以及更多的作为案例的数据库描述 。在上面这段代码中我们看到的Table的IdentityColumn、PrimaryKey、Keys等属性是根据在Database Diagram设计视图(SQL Server Management Studio和Visual Studio Team Suite中集成)中的对象结构 映射的,这比SQL脚本语言中的结构更加细致完整。