我正在尝试为我的 DataObjects 创建一个通用基类,如下所示:
public abstract class BaseDataObject<TDOType> where TDOType : class
{
public static TDOType Get(Guid lObjectUUID, NpgsqlConnection conn)
{
return conn.Get<TDOType>(lObjectUUID);
}
public Guid Insert(NpgsqlConnection conn)
{
try
{
return conn.Insert<Guid, BaseDataObject<TDOType>>(this);
}
catch (Exception ex)
{
throw;
}
}
}
我继承的类:
[Table("mytable")]
public class MyTable : BaseDataObject<MyTable>
{
[Key]
[Column("mytableuuid")]
public Guid MyTableUUID { get; set; }
[Column("clientuuid")]
public Guid ClientUUID { get; set; }
}
当我从继承的对象调用此方法时,我会收到以下消息:
42601:“)”处或附近的语法错误
当我查看正在传递的异常中的语句时,它看起来像这样:
{插入“mytable”()值()}
即使当我按如下方式投射“this”时,结果也是一样的:
try
{
BaseDataObject<TDOType> q = this;
return conn.Insert<Guid, BaseDataObject<TDOType>>(q);
}
看起来通用函数没有正确看到我继承类的成员。我究竟做错了什么?