我有以下 POCO 课程
public interface IObject
{
Guid Uid { get; set; }
}
public class Boo : IObject
{
public Guid Uid { get; set; }
public String Name { get; set; }
}
public class Foo : IObject
{
public Guid Uid { get; set; }
public String Name { get; set; }
}
我正在尝试编写一个通用方法来将任何类型的对象插入到类型继承自的数据库中IObject
。我正在使用以下方法(下面有 ServiceStackOrmLite):
public interface IDataAccess
{
IDbConnection GetConnection();
Boolean InsertObject<T>(T newObj, IDbConnection connection) where T : IDataObject, new();
}
尝试分别插入每个对象的工作方式如下:
public static Boolean AddFoo(this Foo foo)
{
// DataProvider is initiated using an implementation of IDataAccess
return DataProvider.InsertObject(foo, DataProvider.GetConnection());
}
问题 :
我正在尝试使用以下方法作为两者的有效方法,但它失败了。语法错误,但将其视为伪代码。我怎样才能做到这一点?obj
将是盒装Foo
或Boo
实例
public static Boolean AddObject(this IObject obj)
{
Type objectType = obj.GetType();
return DataProvider.InsertObject(obj as objectType, DataProvider.GetConnection());
}