61 lines
1.3 KiB
C#
61 lines
1.3 KiB
C#
using System.Linq.Expressions;
|
|
|
|
namespace YLErp.Abstract
|
|
{
|
|
/// <summary>
|
|
/// 数据源接口
|
|
/// </summary>
|
|
public interface IDataSource
|
|
{
|
|
/// <summary>
|
|
/// 数据个数
|
|
/// </summary>
|
|
int Count { get; }
|
|
|
|
/// <summary>
|
|
/// 重置数据源
|
|
/// </summary>
|
|
void ResetDataSource();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 数据源接口
|
|
/// </summary>
|
|
public interface IDataSource<TData> : IDataSource
|
|
{
|
|
TData GetData(int keyId);
|
|
|
|
/// <summary>
|
|
/// 获取数据
|
|
/// </summary>
|
|
IQueryable<TData> AsQueryable(Expression<Func<TData, bool>> predicate = null);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 数据源接口
|
|
/// </summary>
|
|
public interface IDataSourceV2<TData> : IDataSource<TData>
|
|
{
|
|
bool TryGetData(int keyId, out TData data);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 数据源接口
|
|
/// </summary>
|
|
public interface IDataSourceKey2<TData> : IDataSource<TData>
|
|
{
|
|
TData GetData(string keyStr);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 数据源事件接口
|
|
/// </summary>
|
|
public interface IDataSourceEvent
|
|
{
|
|
/// <summary>
|
|
/// 数据源被更新后的事件
|
|
/// </summary>
|
|
event EventHandler DataSourceUpdated;
|
|
}
|
|
}
|