mirror of https://github.com/ogoun/Zero.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
799 B
30 lines
799 B
using System;
|
|
using System.Data;
|
|
using System.Data.Common;
|
|
|
|
namespace ZeroLevel.MsSql
|
|
{
|
|
public interface IDbMapper
|
|
{
|
|
IDbField this[string name] { get; }
|
|
IDbField IdentityField { get; }
|
|
Type EntityType { get; }
|
|
object Id(object entity);
|
|
void TraversalFields(Action<IDbField> callback);
|
|
void TraversalFields(Func<IDbField, bool> callback);
|
|
void SetTypeConverter(Func<IDbField, object, object> converter);
|
|
bool Exists(string name);
|
|
|
|
#region Serialization
|
|
object Deserialize(DataRow row);
|
|
object Deserialize(DbDataReader reader);
|
|
#endregion
|
|
}
|
|
|
|
public interface IDbMapper<T> : IDbMapper
|
|
{
|
|
new T Deserialize(DataRow row);
|
|
new T Deserialize(DbDataReader reader);
|
|
}
|
|
}
|