CS1061 'object' 不包含 'Id' 的定义
public static async Task RemoveItem<T>(object obj) where T : class, new()
{
if (obj == null || db == null)
return;
obj = obj as T;
await db.DeleteAsync<T>(obj.Id); // error
}
这有可能解决还是我已经达到了边缘?
CS1061 'object' 不包含 'Id' 的定义
public static async Task RemoveItem<T>(object obj) where T : class, new()
{
if (obj == null || db == null)
return;
obj = obj as T;
await db.DeleteAsync<T>(obj.Id); // error
}
这有可能解决还是我已经达到了边缘?
重要提示:该问题被标记为重复并且已经关闭。尽管如此,由于评论,我想分享我的原始解决方案,而不是结果。
打字时,我找到了解决方案:-) 感谢Test if a property is available on a dynamic variable
public static async Task RemoveItem<T>(object obj) where T : class, new()
{
if (obj == null || db == null)
return;
dynamic objA = obj as T;
try
{
int id = objA.Id; // Check if property exists
await db.DeleteAsync<T>(id);
}
catch (Exception)
{
throw;
}
}
评论后编辑:
public static async Task RemoveItem<T>(object obj) where T : class, IDatabaseEntity, new()
{
if (obj == null || db == null)
return;
var entity = obj as IDatabaseEntity;
await db.DeleteAsync<T>(entity.Id);
}