社区
分析与设计
帖子详情
做项目的时候用LIst好还是IList好?
civerb
2009-02-15 10:37:29
做项目的时候比如要编写一个方法返回一个用户对象的集合
是定义成:
public List<User> GetAllUser();好呢?还是
public IList<User> GetAllUser();好呢?
其实我一开始都是用第一种的,不过petshop4.0里都是用的第二种,搞不懂哪一种实用了,哪一种好呢?
...全文
936
8
打赏
收藏
做项目的时候用LIst好还是IList好?
做项目的时候比如要编写一个方法返回一个用户对象的集合 是定义成: public List GetAllUser();好呢?还是 public IList GetAllUser();好呢? 其实我一开始都是用第一种的,不过petshop4.0里都是用的第二种,搞不懂哪一种实用了,哪一种好呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
以专业开发人员为伍
2009-02-16
打赏
举报
回复
如果你觉得
public List <User> GetAllUser()
{
.......
}
不习惯,完全可以再增加一个
public IList<User> GetAllUser2()
{
return GetAllUser();
}
这样就可以让两种人都得到喜欢的接口定义!而不需要花太多的时间自己在那里左右为难。
使用接口定义,往往这是给那种需要脱离具体接口实现的人来用的。例如一个人脱离IList<T>的具体实现形式来进行设计,另一个人则实现这个设计。使用接口进行设计是一个思想工具,只有在正确的时候使用这个方法才显得特别必要。而当你完全有责权可以决定List<T>还是IList<T>,你跟别人没有分工而都是你一个人实现代码时,无所谓定义为哪一个。此时关键的是你的定义要尽早定下来成为产品基线,写入文档或者测试,让其他程序员的编程工作可以不受影响尽早开展,不论你选择哪一个定义方式,关键就是不要犹犹豫豫就行了。
sphinger
2009-02-16
打赏
举报
回复
同习,同习
y63964632
2009-02-16
打赏
举报
回复
学习~
宝_爸
2009-02-16
打赏
举报
回复
IList,这样你GetAllUser中就可以更换容器类型,只要这种容器实现IList接口。
面向对象中有一条实践,就叫针对接口编程:
参见:
面向对象的设计法则(2)——针对接口编程,而非(接口的)实现
http://www.cnblogs.com/wxf0701/archive/2008/05/20/1203206.html
针对接口编程
http://www.cnblogs.com/lotusswan/archive/2008/08/22/231357.html
changjiangzhibin
2009-02-16
打赏
举报
回复
推荐用接口形式 IList
vrhero
2009-02-15
打赏
举报
回复
IList<T>接口耦合度更低,List<T>提供更多特性...各有各的好处,看情况...
civerb
2009-02-15
打赏
举报
回复
为什么好啊,详细说说好吗
lnwuyaowei
2009-02-15
打赏
举报
回复
第二种好。
只要实现了IList接口的就可以供客户端消费。
DevExpress.XtraGrid.GridControl绑定
List
笔记
最近公司计划按业务domain拆分系统,原有系统客户端用到DevExpress组件,报表展示都是通过GridControl绑定DataTable实现。考虑到和服务端交互数据的性能问题,在
项目
升级的同时,想把DataTable替换掉。 GridControl绑定I
List
比较简单,但是在调试主从表效果时,一直没能达到预期效果,子列表的列名一直显示相应类的字段名称。这个问题令人大伤脑筋,调试过程着实花了一番功夫,但是问题的解决方法却让人大跌眼镜。 考虑到关于这个问题在网上比较难找,所以这里
做
了个分享,希望对碰到同样问题的朋友有所帮助。
ORM及代码生成器C#源码(最新版V4.5.8.5、非常适于ASP.NET MVC)
对象关系映射架构(DBFramework)及代码生成器源码 一、使用对象关系映射组件Kenly.DBFramework.dll不用编写任何SQL或者存储过程即可实现下列功能: 1、数据表、视图和存储过程与对象之间的转换。 2、数据表、视图的自定义条件查询。 3、数据表、视图的分页查询。 4、根据ID、主键或自定义条件对数据表进行增、删、改操作。 5、实现一对一、一对多、多对一和多对多的关系映射。 6、支持单个对象和多个对象之间的事务控制。 7、支持查询结果排序。 8、支持查询表达式生成。 9、支持延迟加载。 二、代码生成器 1、根据指定的数据库连接,自动生成数据表、视图和存储过程对应的对象代码(C#代码)。 2、自动生成相关的工程文件,生成完整的业务层
项目
文件。 3、可以帮助生成自定义查询方法。 4、支持SQLServer2000、SQLServer2005和Oracle代码生成插件,支持插件扩展。 提供 1、对象关系映射组件: Kenly.DBFramework.dll 2、代码生成器源码:CodeHelper。 3、代码生成器插件源码(支持SQLServer2000、SQLServer2005和Oracle):Plugin。 4、使用手册:DBFramework.Manual V4.5.3.pdf。 主要API: public abstract class ViewGateway where T: new() { // Methods static ViewGateway(); protected ViewGateway(); protected static int Count(); protected static int Count(string condition); protected static
List
CountGroup(string groupBy); protected static
List
CountGroup(string condition, string groupBy); public static
List
CreateInstances(int count); protected static
List
Distinct(string columnName); protected static
List
Distinct(string columnName, string condition); protected static
List
Distinct(string columnName, string condition, bool ignoreNull); protected static bool Exists(string condition); public bool ExistsById(); public bool ExistsByPK(); protected static
List
Find(PagingArg pagingArg, params string[] propertyNames); protected static
List
Find(string condition, params string[] propertyNames); protected static
List
Find(PagingArg pagingArg, bool sqlServer2000, params string[] propertyNames); protected static
List
Find(string condition, PagingArg pagingArg, params string[] propertyNames); protected static
List
Find(string condition, PagingArg pagingArg, bool sqlServer2000, params string[] propertyNames); protected static
List
FindAll(params string[] propertyNames); protected static void FindTop(T firstOne); protected static
List
FindTop(int topCount, params string[] propertyNames); protected static void FindTop(string condition, T firstOne); protected static
List
FindTop(string condition, int topCount, params string[] propertyNames); protected static void InitializeGateway(GatewayConfig config); protected static void InitializeGateway(DatabaseType dbType, string connectionString); protected void InitializeInstance(T entity); protected static object Max(string columnName); protected static object Max(string columnName, string condition); protected static
List
MaxGroup(string columnName, string groupBy); protected static
List
MaxGroup(string columnName, string condition, string groupBy); protected static object Min(string columnName); protected static object Min(string columnName, string condition); protected static
List
MinGroup(string columnName, string groupBy); protected static
List
MinGroup(string columnName, string condition, string groupBy); protected static DataTable Query(PagingArg pagingArg, params string[] propertyNames); protected static DataTable Query(string condition, params string[] propertyNames); protected static DataTable Query(PagingArg pagingArg, bool sqlServer2000, params string[] propertyNames); protected static DataTable Query(string condition, PagingArg pagingArg, params string[] propertyNames); protected static DataTable Query(string condition, PagingArg pagingArg, bool sqlServer2000, params string[] propertyNames); protected static DataTable QueryAll(params string[] propertyNames); protected static DataTable QueryTop(int topCount, params string[] propertyNames); protected static DataTable QueryTop(string condition, int topCount, params string[] propertyNames); public Array
List
RetrieveAssociations(); public Array
List
RetrieveAssociations(Type elementType); public Array
List
RetrieveAssociations(params Type[] elementTypes); public void RetrieveById(); public void RetrieveByPK(); protected internal virtual void RetrieveBySql(string sql); public void ShadowCopyTo(object targetEntity); public void ShadowCopyTo(T targetEntity); protected static double Sum(string columnName); protected static double Sum(string columnName, string condition); protected static
List
SumGroup(string columnName, string groupBy); protected static
List
SumGroup(string columnName, string condition, string groupBy); public static string ToColumnName(string propertyName); public static T ToObject(DataRow adaptedRow); public static
List
ToObjects(DataTable adaptedTable); public static
List
ToObjects(DataRow[] adaptedRows); public static string ToPropertyName(string columnName); public static DataTable ToTable(I
List
entities); public static DataTable ToTable(params T[] entities); public static DataTable ToTable(bool isAdapted, params T[] entities); public static DataTable ToTable(bool isAdapted, I
List
entities); // Properties protected internal static string CommandText { get; } protected internal static GatewayConfig Config { get; } internal T Entity { get; set; } public object EntityId { get; } public object PrimaryKey { get; } protected static Order SortedOrder { get; set; } } public abstract class TableGateway : ViewGateway where T: TableGateway, new() { // Methods static TableGateway(); protected TableGateway(); public int AddNew(); public static int AddNew(I
List
entities); public static int AddNew(T entity); public int AddNew(bool returnIdentity); public static int AddNew(T entity, bool returnIdentity); public static int AddNew(I
List
entities, out Transaction transaction); public static int AddNew(I
List
entities, bool returnIdentity); public static int AddNew(T entity, out Transaction transaction); public static int AddNew(I
List
entities, bool returnIdentity, out Transaction transaction); public static int AddNew(T entity, bool returnIdentity, out Transaction transaction); public IDbTransaction BeginTransaction(); public IDbTransaction BeginTransaction(IsolationLevel isolationLevel); public IDbTransaction BeginTransaction(double activeTime); public IDbTransaction BeginTransaction(IsolationLevel isolationLevel, double activeTime); public bool Commit(); protected static int Delete(string condition); protected static int Delete(string condition, out Transaction transaction); public int DeleteById(); public static int DeleteById(T entity); public static int DeleteById(I
List
entities); public static int DeleteById(I
List
entities, out Transaction transaction); public static int DeleteById(T entity, out Transaction transaction); public int DeleteByPK(); public static int DeleteByPK(T entity); public static int DeleteByPK(I
List
entities); public static int DeleteByPK(I
List
entities, out Transaction transaction); public static int DeleteByPK(T entity, out Transaction transaction); protected void OnPropertyChanged(MethodBase propertyMethod); protected void OnPropertyChanged(string propertyName); protected internal override void RetrieveBySql(string sql); public bool Rollback(); protected static int Update(T entity, string condition); protected static int Update(T entity, string condition, out Transaction transaction); public int UpdateById(); public static int UpdateById(I
List
entities); public static int UpdateById(T entity); public static int UpdateById(T entity, out Transaction transaction); public static int UpdateById(I
List
entities, out Transaction transaction); public int UpdateByPK(); public static int UpdateByPK(I
List
entities); public static int UpdateByPK(T entity); public static int UpdateByPK(I
List
entities, out Transaction transaction); public static int UpdateByPK(T entity, out Transaction transaction); // Properties public bool Changed { get; } public
List
ChangedPropertyNames { get; } } public class StoredProcedure : IStoredProcedure { public bool BeginTransaction(); public void CloseReader(IDataReader reader); public bool Commit(); public DataSet ExecuteDataSet(); public DataTable ExecuteDataTable(); public DataTable ExecuteDataTable(); public
List
ExecuteEntity(); public int ExecuteNonQuery(); public IDataReader ExecuteReader(); public object ExecuteScalar(); protected static void InitializeGateway(GatewayConfig config); protected static void InitializeGateway(DatabaseType dbType, string connectionString); protected void InitializeInstance(T entity); public bool Rollback(); } public class AggregateEntity where T: AggregateEntity, new() { public static
List
Execute(); protected static
List
Execute(string condition); public static DataTable ExecuteDataTable(); protected static DataTable ExecuteDataTable(string condition); protected static void InitializeGateway(GatewayConfig config); protected static void InitializeGateway(DatabaseType dbType, string connectionString); // Properties protected static Order SortedOrder { get; set; } } public static class EntityMapper { // Methods public static void AdaptToDatabase(DataTable adaptedTable); public static void AdaptToEntity(DataTable rawTable); public static void CopyToEntities(I
List
entities, I
List
adaptedRows); public static void CopyToEntities(I
List
entities, DataTable adaptedTable); public static void CopyToEntity(T entity, DataRow row); public static
List
CreateEntities(int count); public static DataTable CreateTable(); public static DataTable CreateTable(bool isAdapted); public static string ToColumnName(string propertyName); public static
List
ToEntities(I
List
adaptedRows); public static
List
ToEntities(DataTable table); public static T ToEntity(DataRow adaptedRow); public static string ToPropertyName(string columnName); public static DataTable ToTable(I
List
entities); public static DataTable ToTable(params T[] entities); public static DataTable ToTable(bool isAdapted, params T[] entities); public static DataTable ToTable(bool isAdapted, I
List
entities); } public static class EntityUtility { // Methods public static
List
Inherit(I
List
entities); public static T Inherit(object entity); public static T Inherit(Tbase baseEntity, TransformAction method); public static
List
Inherit(I
List
baseEntities, TransformAction method); public static void ShadowCopy(I
List
targetEntities, I
List
sourceEntities); public static void ShadowCopy(object targetEntity, object sourceEntity); }
ORM及代码生成器C#源码(2012最新版Kenly.DBFramework4.6.5.5)
对象关系映射架构(DBFramework)及代码生成器源码 一、使用对象关系映射组件Kenly.DBFramework.dll不用编写任何SQL或者存储过程即可实现下列功能: 1、数据表、视图和存储过程与对象之间的转换。 2、数据表、视图的自定义条件查询。 3、数据表、视图的分页查询。 4、根据ID、主键或自定义条件对数据表进行增、删、改操作。 5、实现一对一、一对多、多对一和多对多的关系映射。 6、支持单个对象和多个对象之间的事务控制。 7、支持查询结果排序。 8、支持查询表达式生成。 9、支持延迟加载。 二、代码生成器 1、根据指定的数据库连接,自动生成数据表、视图和存储过程对应的对象代码(C#代码)。 2、自动生成相关的工程文件,生成完整的业务层
项目
文件。 3、可以帮助生成自定义查询方法。 4、支持SQLServer2000、SQLServer2005和Oracle代码生成插件,支持插件扩展。 提供 1、对象关系映射组件: Kenly.DBFramework.dll 2、代码生成器源码:CodeHelper。 3、代码生成器插件源码(支持SQLServer2000、SQLServer2005和Oracle):Plugin。 4、使用手册:DBFramework.Manual V4.5.3.pdf。 主要API: public abstract class ViewGateway where T: new() { // Methods static ViewGateway(); protected ViewGateway(); protected static int Count(); protected static int Count(string condition); protected static
List
CountGroup(string groupBy); protected static
List
CountGroup(string condition, string groupBy); public static
List
CreateInstances(int count); protected static
List
Distinct(string columnName); protected static
List
Distinct(string columnName, string condition); protected static
List
Distinct(string columnName, string condition, bool ignoreNull); protected static bool Exists(string condition); public bool ExistsById(); public bool ExistsByPK(); protected static
List
Find(PagingArg pagingArg, params string[] propertyNames); protected static
List
Find(string condition, params string[] propertyNames); protected static
List
Find(PagingArg pagingArg, bool sqlServer2000, params string[] propertyNames); protected static
List
Find(string condition, PagingArg pagingArg, params string[] propertyNames); protected static
List
Find(string condition, PagingArg pagingArg, bool sqlServer2000, params string[] propertyNames); protected static
List
FindAll(params string[] propertyNames); protected static void FindTop(T firstOne); protected static
List
FindTop(int topCount, params string[] propertyNames); protected static void FindTop(string condition, T firstOne); protected static
List
FindTop(string condition, int topCount, params string[] propertyNames); protected static void InitializeGateway(GatewayConfig config); protected static void InitializeGateway(DatabaseType dbType, string connectionString); protected void InitializeInstance(T entity); protected static object Max(string columnName); protected static object Max(string columnName, string condition); protected static
List
MaxGroup(string columnName, string groupBy); protected static
List
MaxGroup(string columnName, string condition, string groupBy); protected static object Min(string columnName); protected static object Min(string columnName, string condition); protected static
List
MinGroup(string columnName, string groupBy); protected static
List
MinGroup(string columnName, string condition, string groupBy); protected static DataTable Query(PagingArg pagingArg, params string[] propertyNames); protected static DataTable Query(string condition, params string[] propertyNames); protected static DataTable Query(PagingArg pagingArg, bool sqlServer2000, params string[] propertyNames); protected static DataTable Query(string condition, PagingArg pagingArg, params string[] propertyNames); protected static DataTable Query(string condition, PagingArg pagingArg, bool sqlServer2000, params string[] propertyNames); protected static DataTable QueryAll(params string[] propertyNames); protected static DataTable QueryTop(int topCount, params string[] propertyNames); protected static DataTable QueryTop(string condition, int topCount, params string[] propertyNames); public Array
List
RetrieveAssociations(); public Array
List
RetrieveAssociations(Type elementType); public Array
List
RetrieveAssociations(params Type[] elementTypes); public void RetrieveById(); public void RetrieveByPK(); protected internal virtual void RetrieveBySql(string sql); public void ShadowCopyTo(object targetEntity); public void ShadowCopyTo(T targetEntity); protected static double Sum(string columnName); protected static double Sum(string columnName, string condition); protected static
List
SumGroup(string columnName, string groupBy); protected static
List
SumGroup(string columnName, string condition, string groupBy); public static string ToColumnName(string propertyName); public static T ToObject(DataRow adaptedRow); public static
List
ToObjects(DataTable adaptedTable); public static
List
ToObjects(DataRow[] adaptedRows); public static string ToPropertyName(string columnName); public static DataTable ToTable(I
List
entities); public static DataTable ToTable(params T[] entities); public static DataTable ToTable(bool isAdapted, params T[] entities); public static DataTable ToTable(bool isAdapted, I
List
entities); // Properties protected internal static string CommandText { get; } protected internal static GatewayConfig Config { get; } internal T Entity { get; set; } public object EntityId { get; } public object PrimaryKey { get; } protected static Order SortedOrder { get; set; } } public abstract class TableGateway : ViewGateway where T: TableGateway, new() { // Methods static TableGateway(); protected TableGateway(); public int AddNew(); public static int AddNew(I
List
entities); public static int AddNew(T entity); public int AddNew(bool returnIdentity); public static int AddNew(T entity, bool returnIdentity); public static int AddNew(I
List
entities, out Transaction transaction); public static int AddNew(I
List
entities, bool returnIdentity); public static int AddNew(T entity, out Transaction transaction); public static int AddNew(I
List
entities, bool returnIdentity, out Transaction transaction); public static int AddNew(T entity, bool returnIdentity, out Transaction transaction); public IDbTransaction BeginTransaction(); public IDbTransaction BeginTransaction(IsolationLevel isolationLevel); public IDbTransaction BeginTransaction(double activeTime); public IDbTransaction BeginTransaction(IsolationLevel isolationLevel, double activeTime); public bool Commit(); protected static int Delete(string condition); protected static int Delete(string condition, out Transaction transaction); public int DeleteById(); public static int DeleteById(T entity); public static int DeleteById(I
List
entities); public static int DeleteById(I
List
entities, out Transaction transaction); public static int DeleteById(T entity, out Transaction transaction); public int DeleteByPK(); public static int DeleteByPK(T entity); public static int DeleteByPK(I
List
entities); public static int DeleteByPK(I
List
entities, out Transaction transaction); public static int DeleteByPK(T entity, out Transaction transaction); protected void OnPropertyChanged(MethodBase propertyMethod); protected void OnPropertyChanged(string propertyName); protected internal override void RetrieveBySql(string sql); public bool Rollback(); protected static int Update(T entity, string condition); protected static int Update(T entity, string condition, out Transaction transaction); public int UpdateById(); public static int UpdateById(I
List
entities); public static int UpdateById(T entity); public static int UpdateById(T entity, out Transaction transaction); public static int UpdateById(I
List
entities, out Transaction transaction); public int UpdateByPK(); public static int UpdateByPK(I
List
entities); public static int UpdateByPK(T entity); public static int UpdateByPK(I
List
entities, out Transaction transaction); public static int UpdateByPK(T entity, out Transaction transaction); // Properties public bool Changed { get; } public
List
ChangedPropertyNames { get; } } public class StoredProcedure : IStoredProcedure { public bool BeginTransaction(); public void CloseReader(IDataReader reader); public bool Commit(); public DataSet ExecuteDataSet(); public DataTable ExecuteDataTable(); public DataTable ExecuteDataTable(); public
List
ExecuteEntity(); public int ExecuteNonQuery(); public IDataReader ExecuteReader(); public object ExecuteScalar(); protected static void InitializeGateway(GatewayConfig config); protected static void InitializeGateway(DatabaseType dbType, string connectionString); protected void InitializeInstance(T entity); public bool Rollback(); } public class AggregateEntity where T: AggregateEntity, new() { public static
List
Execute(); protected static
List
Execute(string condition); public static DataTable ExecuteDataTable(); protected static DataTable ExecuteDataTable(string condition); protected static void InitializeGateway(GatewayConfig config); protected static void InitializeGateway(DatabaseType dbType, string connectionString); // Properties protected static Order SortedOrder { get; set; } } public static class EntityMapper { // Methods public static void AdaptToDatabase(DataTable adaptedTable); public static void AdaptToEntity(DataTable rawTable); public static void CopyToEntities(I
List
entities, I
List
adaptedRows); public static void CopyToEntities(I
List
entities, DataTable adaptedTable); public static void CopyToEntity(T entity, DataRow row); public static
List
CreateEntities(int count); public static DataTable CreateTable(); public static DataTable CreateTable(bool isAdapted); public static string ToColumnName(string propertyName); public static
List
ToEntities(I
List
adaptedRows); public static
List
ToEntities(DataTable table); public static T ToEntity(DataRow adaptedRow); public static string ToPropertyName(string columnName); public static DataTable ToTable(I
List
entities); public static DataTable ToTable(params T[] entities); public static DataTable ToTable(bool isAdapted, params T[] entities); public static DataTable ToTable(bool isAdapted, I
List
entities); } public static class EntityUtility { // Methods public static
List
Inherit(I
List
entities); public static T Inherit(object entity); public static T Inherit(Tbase baseEntity, TransformAction method); public static
List
Inherit(I
List
baseEntities, TransformAction method); public static void ShadowCopy(I
List
targetEntities, I
List
sourceEntities); public static void ShadowCopy(object targetEntity, object sourceEntity); }
ORM及代码生成器和插件C#源码(DBFrameworkV4.5.3)
一、使用对象关系映射组件Kenly.DBFramework.dll不用编写任何SQL或者存储过程即可实现下列功能: 1、数据表、视图和存储过程与对象之间的转换。 2、数据表、视图的自定义条件查询。 3、数据表、视图的分页查询。 4、根据ID、主键或自定义条件对数据表进行增、删、改操作。 5、实现一对一、一对多、多对一和多对多的关系映射。 6、支持单个对象和多个对象之间的事务控制。 7、支持查询结果排序。 8、支持查询表达式生成。 9、支持延迟加载。 二、代码生成器 1、根据指定的数据库连接,自动生成数据表、视图和存储过程对应的对象代码(C#代码)。 2、自动生成相关的工程文件,生成完整的业务层
项目
文件。 3、可以帮助生成自定义查询方法。 4、支持SQLServer2000、SQLServer2005和Oracle代码生成插件,支持插件扩展。 提供 1、对象关系映射组件: Kenly.DBFramework.dll 2、代码生成器源码:Xsd2CS。 3、代码生成器插件源码(支持SQLServer2000、SQLServer2005和Oracle):Plugin。 4、使用手册:DBFramework.Manual V4.5.3.pdf。 主要API: public abstract class ViewGateway
where T: new() { // Methods static ViewGateway(); protected ViewGateway(); protected static int Count(); protected static int Count(string condition); protected static
List
CountGroup(string groupBy); protected static
List
CountGroup(string condition, string groupBy); public static
List
CreateInstances(int count); protected static
List
Distinct
(string columnName); protected static
List
Distinct
(string columnName, string condition); protected static
List
Distinct
(string columnName, string condition, bool ignoreNull); protected static bool Exists(string condition); public bool ExistsById(); public bool ExistsByPK(); protected static
List
Find(PagingArg pagingArg, params string[] propertyNames); protected static
List
Find(string condition, params string[] propertyNames); protected static
List
Find(PagingArg pagingArg, bool sqlServer2000, params string[] propertyNames); protected static
List
Find(string condition, PagingArg pagingArg, params string[] propertyNames); protected static
List
Find(string condition, PagingArg pagingArg, bool sqlServer2000, params string[] propertyNames); protected static
List
FindAll(params string[] propertyNames); protected static void FindTop(T firstOne); protected static
List
FindTop(int topCount, params string[] propertyNames); protected static void FindTop(string condition, T firstOne); protected static
List
FindTop(string condition, int topCount, params string[] propertyNames); protected static void InitializeGateway(GatewayConfig config); protected static void InitializeGateway(DatabaseType dbType, string connectionString); protected void InitializeInstance(T entity); protected static object Max(string columnName); protected static object Max(string columnName, string condition); protected static
List
MaxGroup(string columnName, string groupBy); protected static
List
MaxGroup(string columnName, string condition, string groupBy); protected static object Min(string columnName); protected static object Min(string columnName, string condition); protected static
List
MinGroup(string columnName, string groupBy); protected static
List
MinGroup(string columnName, string condition, string groupBy); protected static DataTable Query(PagingArg pagingArg, params string[] propertyNames); protected static DataTable Query(string condition, params string[] propertyNames); protected static DataTable Query(PagingArg pagingArg, bool sqlServer2000, params string[] propertyNames); protected static DataTable Query(string condition, PagingArg pagingArg, params string[] propertyNames); protected static DataTable Query(string condition, PagingArg pagingArg, bool sqlServer2000, params string[] propertyNames); protected static DataTable QueryAll(params string[] propertyNames); protected static DataTable QueryTop(int topCount, params string[] propertyNames); protected static DataTable QueryTop(string condition, int topCount, params string[] propertyNames); public Array
List
RetrieveAssociations(); public Array
List
RetrieveAssociations(Type elementType); public Array
List
RetrieveAssociations(params Type[] elementTypes); public void RetrieveById(); public void RetrieveByPK(); protected internal virtual void RetrieveBySql(string sql); public void ShadowCopyTo(object targetEntity); public void ShadowCopyTo(T targetEntity); protected static double Sum(string columnName); protected static double Sum(string columnName, string condition); protected static
List
SumGroup(string columnName, string groupBy); protected static
List
SumGroup(string columnName, string condition, string groupBy); public static string ToColumnName(string propertyName); public static T ToObject(DataRow adaptedRow); public static
List
ToObjects(DataTable adaptedTable); public static
List
ToObjects(DataRow[] adaptedRows); public static string ToPropertyName(string columnName); public static DataTable ToTable(I
List
entities); public static DataTable ToTable(params T[] entities); public static DataTable ToTable(bool isAdapted, params T[] entities); public static DataTable ToTable(bool isAdapted, I
List
entities); // Properties protected internal static string CommandText { get; } protected internal static GatewayConfig Config { get; } internal T Entity { get; set; } public object EntityId { get; } public object PrimaryKey { get; } protected static Order SortedOrder { get; set; } } public abstract class TableGateway
: ViewGateway
where T: TableGateway
, new() { // Methods static TableGateway(); protected TableGateway(); public int AddNew(); public static int AddNew(I
List
entities); public static int AddNew(T entity); public int AddNew(bool returnIdentity); public static int AddNew(T entity, bool returnIdentity); public static int AddNew(I
List
entities, out Transaction transaction); public static int AddNew(I
List
entities, bool returnIdentity); public static int AddNew(T entity, out Transaction transaction); public static int AddNew(I
List
entities, bool returnIdentity, out Transaction transaction); public static int AddNew(T entity, bool returnIdentity, out Transaction transaction); public IDbTransaction BeginTransaction(); public IDbTransaction BeginTransaction(IsolationLevel isolationLevel); public IDbTransaction BeginTransaction(double activeTime); public IDbTransaction BeginTransaction(IsolationLevel isolationLevel, double activeTime); public bool Commit(); protected static int Delete(string condition); protected static int Delete(string condition, out Transaction transaction); public int DeleteById(); public static int DeleteById(T entity); public static int DeleteById(I
List
entities); public static int DeleteById(I
List
entities, out Transaction transaction); public static int DeleteById(T entity, out Transaction transaction); public int DeleteByPK(); public static int DeleteByPK(T entity); public static int DeleteByPK(I
List
entities); public static int DeleteByPK(I
List
entities, out Transaction transaction); public static int DeleteByPK(T entity, out Transaction transaction); protected void OnPropertyChanged(MethodBase propertyMethod); protected void OnPropertyChanged(string propertyName); protected internal override void RetrieveBySql(string sql); public bool Rollback(); protected static int Update(T entity, string condition); protected static int Update(T entity, string condition, out Transaction transaction); public int UpdateById(); public static int UpdateById(I
List
entities); public static int UpdateById(T entity); public static int UpdateById(T entity, out Transaction transaction); public static int UpdateById(I
List
entities, out Transaction transaction); public int UpdateByPK(); public static int UpdateByPK(I
List
entities); public static int UpdateByPK(T entity); public static int UpdateByPK(I
List
entities, out Transaction transaction); public static int UpdateByPK(T entity, out Transaction transaction); // Properties public bool Changed { get; } public
List
ChangedPropertyNames { get; } } public class StoredProcedure
: IStoredProcedure { public bool BeginTransaction(); public void CloseReader(IDataReader reader); public bool Commit(); public DataSet ExecuteDataSet(); public DataTable ExecuteDataTable(); public DataTable ExecuteDataTable
(); public
List
ExecuteEntity
(); public int ExecuteNonQuery(); public IDataReader ExecuteReader(); public object ExecuteScalar(); protected static void InitializeGateway(GatewayConfig config); protected static void InitializeGateway(DatabaseType dbType, string connectionString); protected void InitializeInstance(T entity); public bool Rollback(); } public class AggregateEntity
where T: AggregateEntity
, new() { public static
List
Execute(); protected static
List
Execute(string condition); public static DataTable ExecuteDataTable(); protected static DataTable ExecuteDataTable(string condition); protected static void InitializeGateway(GatewayConfig config); protected static void InitializeGateway(DatabaseType dbType, string connectionString); // Properties protected static Order SortedOrder { get; set; } } public static class EntityMapper
{ // Methods public static void AdaptToDatabase(DataTable adaptedTable); public static void AdaptToEntity(DataTable rawTable); public static void CopyToEntities(I
List
entities, I
List
adaptedRows); public static void CopyToEntities(I
List
entities, DataTable adaptedTable); public static void CopyToEntity(T entity, DataRow row); public static
List
CreateEntities(int count); public static DataTable CreateTable(); public static DataTable CreateTable(bool isAdapted); public static string ToColumnName(string propertyName); public static
List
ToEntities(I
List
adaptedRows); public static
List
ToEntities(DataTable table); public static T ToEntity(DataRow adaptedRow); public static string ToPropertyName(string columnName); public static DataTable ToTable(I
List
entities); public static DataTable ToTable(params T[] entities); public static DataTable ToTable(bool isAdapted, params T[] entities); public static DataTable ToTable(bool isAdapted, I
List
entities); } public static class EntityUtility { // Methods public static
List
Inherit
(I
List
entities); public static T Inherit
(object entity); public static T Inherit
(Tbase baseEntity, TransformAction
method); public static
List
Inherit
(I
List
baseEntities, TransformAction
method); public static void ShadowCopy(I
List
targetEntities, I
List
sourceEntities); public static void ShadowCopy(object targetEntity, object sourceEntity); }
unity3d-reorderable-
list
:Unity的列表控件,允许编辑器开发人员将可重新排序的列表控件添加到其GUI
unity3d-reorderable-
list
Unity的列表控件,允许编辑器开发人员将可重新排序的列表控件添加到其GUI。 支持通用列表和序列化属性数组,尽管可以通过实现Rotorz.Games.Collections.IReorderable
List
Adaptor来支持其他集合类型。 $ yarn add rotorz/unity3d-reorderable-
list
该软件包与工具兼容。 有关将程序包同步到Unity
项目
中的信息,请参阅工具的。 特征 拖放重新排序! 重新排序时,如果在滚动视图内,则自动滚动。 使用标记轻松自定义。 I
List
和SerializedProperty适配器。 订阅以添加/删除
项目
事件。 支持混合的
项目
高度。 逐项禁用拖动和/或移除。 插入插入(用于UnityEditor.DragAndDrop )。 如果需要,可以按列
分析与设计
13,190
社区成员
5,761
社区内容
发帖
与我相关
我的任务
分析与设计
.NET技术 分析与设计
复制链接
扫一扫
分享
社区描述
.NET技术 分析与设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章