SQLite Generic Repository:无法编译:TypeAs

时间:2017-08-14 00:20:52

标签: c# sqlite

您好我试图实现一个通用的SQlite存储库。

这将使我的编码更容易,但我遇到一些困难或者可能做错了。

为了说明我的目的,我得到了我的模型类。在继承树下面。

ModelBase(摘要)

- ModelBaseID(公共 int ID属性主键)

- ModelBaseGUID(公共 Guid GUID属性主键)

我的所有模型类都将从ModelBaseID继承,取决于我需要的主键类型。

在我的通用存储库

下面
        public class SQLiteRepository<T> where T : class, new()
        {
    ...

     public async Task<T> GetItemAsync(object id, CancellationToken cancellationToken)
            {
T x = null;

   if (id is int)
            {
                int intID = (int)id;
                try
                {
                    x = await database.Table<T>().Where(item => (item as ModelBaseID).ID == intID).FirstOrDefaultAsync();
                }
                catch (Exception ex)
                {

                    throw;
                }

        }
        else if (id is Guid)
        {
            Guid GuidID = (Guid)id;
            try
            {
                x = await database.Table<T>().Where(item => (item as ModelBaseGUID).GUID == GuidID).FirstOrDefaultAsync();
            }
            catch (Exception ex)
            {

                throw;
            }

        }

我有错误 - &gt;无法编译:TypeAs由于我的Where cast表达式。关于这个问题的优雅解决方案的任何想法?

0 个答案:

没有答案