当前位置:网站首页>UOW of dev XPO comparison
UOW of dev XPO comparison
2022-07-01 06:06:00 【qq_ sixteen million two hundred and fifteen thousand nine hundr】
Producer XPObject:
using DevExpress.Data.Filtering;
//using DevExpress.Utils.Base;
using DevExpress.Xpo;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using DevExpress.Persistent.BaseImpl;
using DevExpress.Persistent.BaseImpl.PermissionPolicy;
namespace XYZ.Module.BusinessObjects
{
//[ImageName("BO_Contact")]
//[DefaultProperty("DisplayMemberNameForLookupEditorsOfThisType")]
//[DefaultListViewOptions(MasterDetailMode.ListViewOnly, false, NewItemRowPosition.None)]
//[Persistent("DatabaseTableName")]
// Specify more UI options using a declarative approach (https://documentation.devexpress.com/#eXpressAppFramework/CustomDocument112701).
public class XYZ_Producer : BaseObject
{ // Inherit from a different class to provide a custom primary key, concurrency and deletion behavior, etc. (https://documentation.devexpress.com/eXpressAppFramework/CustomDocument113146.aspx).
// Use CodeRush to create XPO classes and properties with a few keystrokes.
// https://docs.devexpress.com/CodeRushForRoslyn/118557
public XYZ_Producer(Session session)
: base(session)
{
}
PermissionPolicyUser GetCurrentUser()
{
PermissionPolicyUser user = null;
try
{
//return Session.GetObjectByKey<PermissionPolicyUser>(SecuritySystem.CurrentUserId); // In XAF apps for versions older than v20.1.7.
user = Session.FindObject<PermissionPolicyUser>(CriteriaOperator.Parse("Oid=CurrentUserId()"));
}
catch (Exception ex)
{
}
return user; // In non-XAF apps where SecuritySystem.Instance is unavailable (v20.1.7+).
}
public override void AfterConstruction()
{
base.AfterConstruction();
CreatedOn = DateTime.Now;
CreatedBy = GetCurrentUser();
}
protected override void OnSaving()
{
base.OnSaving();
UpdatedOn = DateTime.Now;
UpdatedBy = GetCurrentUser();
}
//private string _PersistentProperty;
//[XafDisplayName("My display name"), ToolTip("My hint message")]
//[ModelDefault("EditMask", "(000)-00"), Index(0), VisibleInListView(false)]
//[Persistent("DatabaseColumnName"), RuleRequiredField(DefaultContexts.Save)]
//public string PersistentProperty {
// get { return _PersistentProperty; }
// set { SetPropertyValue(nameof(PersistentProperty), ref _PersistentProperty, value); }
//}
//[Action(Caption = "My UI Action", ConfirmationMessage = "Are you sure?", ImageName = "Attention", AutoCommit = true)]
//public void ActionMethod() {
// // Trigger a custom business logic for the current record in the UI (https://documentation.devexpress.com/eXpressAppFramework/CustomDocument112619.aspx).
// this.PersistentProperty = "Paid";
//}
string fCode;
[Size(255)]
//[XafDisplayName(" code ")]
public string Code
{
get { return fCode; }
set { SetPropertyValue<string>(nameof(Code), ref fCode, value); }
}
string fName;
[Size(255)]
//[XafDisplayName(" name ")]
public string Name
{
get { return fName; }
set { SetPropertyValue<string>(nameof(Name), ref fName, value); }
}
string fAddress;
[Size(255)]
//[XafDisplayName(" name ")]
public string Address
{
get { return fAddress; }
set { SetPropertyValue<string>(nameof(Address), ref fAddress, value); }
}
string fLegalRepresentative;
[Size(255)]
//[XafDisplayName(" person in charge ")]
//[ModelDefault("AllowEdit", "True")]
public string LegalRepresentative
{
get { return fLegalRepresentative; }
set { SetPropertyValue<string>(nameof(LegalRepresentative), ref fLegalRepresentative, value); }
}
string fContact;
[Size(255)]
//[XafDisplayName(" person in charge ")]
//[ModelDefault("AllowEdit", "True")]
public string Contact
{
get { return fContact; }
set { SetPropertyValue<string>(nameof(Contact), ref fContact, value); }
}
private string _Phone;
//[XafDisplayName(" Telephone ")]
public string Phone
{
get
{
return _Phone;
}
set
{
SetPropertyValue("Phone", ref _Phone, value);
}
}
string fRemark;
[Size(255)]
//[XafDisplayName(" remarks ")]
public string Remark
{
get { return fRemark; }
set { SetPropertyValue<string>(nameof(Remark), ref fRemark, value); }
}
PermissionPolicyUser createdBy;
//[ModelDefault("AllowEdit", "False")]
public PermissionPolicyUser CreatedBy
{
get { return createdBy; }
set { SetPropertyValue("CreatedBy", ref createdBy, value); }
}
DateTime createdOn;
//[ModelDefault("AllowEdit", "False"), ModelDefault("DisplayFormat", "G")]
public DateTime CreatedOn
{
get { return createdOn; }
set { SetPropertyValue("CreatedOn", ref createdOn, value); }
}
PermissionPolicyUser updatedBy;
//[ModelDefault("AllowEdit", "False")]
public PermissionPolicyUser UpdatedBy
{
get { return updatedBy; }
set { SetPropertyValue("UpdatedBy", ref updatedBy, value); }
}
DateTime updatedOn;
//[ModelDefault("AllowEdit", "False"), ModelDefault("DisplayFormat", "G")]
public DateTime UpdatedOn
{
get { return updatedOn; }
set { SetPropertyValue("UpdatedOn", ref updatedOn, value); }
}
}
}call :
string connectionString;
IDataLayer dataLayer = null;
UnitOfWork uow = null;
private void tESTUOWToolStripMenuItem_Click(object sender, EventArgs e)
{
KeepUOWConnect();
XYZ_Producer producer = new XYZ_Producer(uow);
producer.Name = "";
producer.Contact = "david";
producer.Save();
uow.CommitChanges();
}
public void KeepUOWConnect()
{
try
{
if (uow == null)
{
logHelper.InfoOnce($" Database connection is empty !");
if (connectionString == null)
connectionString = ConfigurationManager.ConnectionStrings["ConnectionString_XYZData"].ConnectionString;
if (dataLayer == null)
dataLayer = XpoDefault.GetDataLayer(connectionString, DevExpress.Xpo.DB.AutoCreateOption.DatabaseAndSchema);
logHelper.InfoOnce($" Database connected !");
uow = new UnitOfWork(dataLayer);
}
}
catch (Exception ex)
{
logHelper.ErrorOnce($" Database connection failed !{Environment.NewLine}Error Message:{Environment.NewLine}{ex.Message}{Environment.NewLine}StackTrace:{Environment.NewLine}{ex.StackTrace}");
}
finally
{
}
}
/// <summary>
///
/// </summary>
public void ReleaseUOWConnect()
{
try
{
if (uow != null)
{
uow.Disconnect();
uow.Dispose();
if (dataLayer != null)
{
dataLayer.Dispose();
}
dataLayer = null;
uow = null;
}
}
catch (Exception ex)
{
logHelper.ErrorOnce($" Failed to release database connection !{Environment.NewLine}Error Message:{Environment.NewLine}{ex.Message}{Environment.NewLine}StackTrace:{Environment.NewLine}{ex.StackTrace}");
}
finally
{
}
}边栏推荐
- Advanced drawing skills of Excel lecture 100 (1) - use Gantt chart to show the progress of the project
- 穿越派 你的数据云行
- 讓田頭村變甜頭村的特色農產品是仙景芋還是白菜
- srpingboot security demo
- 数据库问题,如何优化Oracle SQL查询语句更快,效率更高
- MySQL里记录货币
- 芯片,建立在沙粒上的帝国!
- Primary application case of Excel DuPont analyzer
- 3D打印机穿线:5种简单的解决方案
- SOE空间分析服务器 MySQL以及PostGres的地理空间库PostGIS防注入攻击
猜你喜欢

OpenGL ES: (3) EGL、EGL绘图的基本步骤、EGLSurface、ANativeWindow

On the first day of the new year, 3000 Apache servers went down

论文学习记录随笔 多标签之LIFT

π盘,让您电脑变成个人的私有云

SystemVerilog学习-08-随机约束和线程控制

3D打印机穿线:5种简单的解决方案

PLA not pasted on the bed: 6 simple solutions

Crossing pie · pie pan + Mountain duck = local data management

This is the necessary software for college students 𞓜 knowledge management

论文学习记录随笔 多标签之GLOCAL
随机推荐
TiDB单机模拟部署生产环境集群(闭坑实践,亲测有效)
Oracle sequence + trigger
OpenGL es: (3) EGL, basic steps of EGL drawing, eglsurface, anativewindow
Why use huluer pie disk instead of U disk?
PLA不粘貼在床上:6個簡單的解决方案
浏览器端保存数据到本地文件
2022 the 8th China International "Internet +" college student innovation and entrepreneurship competition industry proposition track is open for registration!
喊我们大学生个人云服务特供商
Retention rate of SQL required questions
这才是大学生必备软件 | 知识管理
Oracle 序列+触发器
Know the future of "edge computing" from the Nobel prize!
SystemVerilog学习-07-类的继承和包的使用
Differences between in and exists in MySQL
Timer based on LabVIEW
穿越派与贸大合作,为大学生增添效率
MySQL中 in 和 exists 的区别
论文学习记录随笔 多标签之LIFT
Oracle create user + Role
Huluer app help