开发者论坛

 找回密码
 注册 (请使用非IE浏览器)
查看: 2668|回复: 1

XAF 如何:映射数据库视图到持久化类

[复制链接]

0

精华

0

贡献

74

赞扬

帖子
74
软币
717
在线时间
55 小时
注册时间
2013-8-2
发表于 2016-8-11 20:52:50 | 显示全部楼层 |阅读模式
How to: Map a Database View to a Persistent Class(如何:映射数据库视图到持久化类)
http://documentation.devexpress.com/#Xaf/CustomDocument3281
[url=][/url]
首先创建一个结构体,结构体中的属性为要绑定的视图列
    public struct MyViewKey
    {
        [Persistent("Name")]
        public string Name;
        [Persistent("PhoneCode")]
        public string PhoneCode;
        [Persistent("Street")]
        public string Street;
        [Persistent("City")]
        public string City;
        [Persistent("FullAddress")]
        public string FullAddress;
    }
然后将这个结构体当成是Persistent类的KEY

    [Persistent("TestView")]          //TestView为视图名
    public class MyView : XPLiteObject {
    [Key, Persistent]
    public MyViewKey Key;
    public string Name{ get { return Key.Name; } }
    public string PhoneCode { get { return Key.PhoneCode; } }
    public string Street { get { return Key.Street; } }
    public string City { get { return Key.City; } }
    public string FullAddress { get { return Key.FullAddress; } }
}
这样就完成了
用到的视图Sql:
SELECT dbo.Country.Name, dbo.Country.PhoneCode, dbo.Address.Street, dbo.Address.City,
      dbo.Address.FullAddress
FROM dbo.Address INNER JOIN
      dbo.Country ON dbo.Address.Country = dbo.Country.Oid
Address:
CREATE TABLE [dbo].[Address] (
[Street] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[City] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[StateProvince] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[ZipPostal] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[FullAddress] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[OptimisticLockField] [int] NULL ,
[GCRecord] [int] NULL ,
[OID] [int] IDENTITY (1, 1) NOT NULL ,
[Country] [int] NULL
) ON [PRIMARY]
Country:
CREATE TABLE [dbo].[Country] (
[Oid] [int] IDENTITY (1, 1) NOT NULL ,
[Name] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[PhoneCode] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[OptimisticLockField] [int] NULL ,
[GCRecord] [int] NULL
) ON [PRIMARY]
GO



评分

参与人数 2赞扬 +2 收起 理由
jht2800 + 1 赞一个
pretyboy + 1 赞一个

查看全部评分

回复

使用道具 举报

0

精华

10

贡献

0

赞扬

帖子
4
软币
69
在线时间
2 小时
注册时间
2016-8-11
发表于 2016-8-11 21:05:50 | 显示全部楼层
先收藏起来,以后慢慢学习。
回复

使用道具 举报

Archiver|手机版|小黑屋|开发者网 ( 苏ICP备08004430号-2 )
版权所有:南京韵文教育信息咨询有限公司

GMT+8, 2024-12-23 07:35

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表