EF CAST на выбор - PullRequest
       5

EF CAST на выбор

1 голос
/ 12 июня 2019

В настоящее время я работаю с базой данных, в которой для одного из столбцов имеется пользовательский тип CLR. Если я пытаюсь использовать файл EDMX, он не распознает столбец или не позволяет мне включить его в список свойств. для стола

Я создал свойство для моего объекта модели (так как я использую Dynamic DBConext в своем коде, поэтому мне нужно было только EDMX для копирования сгенерированных файлов классов), это работает нормально и запускает запрос базы данных, когда он приходит Возвращаясь к преобразованию запроса, я получаю сообщение об ошибке, которое показывает, что EF ищет пользовательскую библиотеку типа CLR,

Я бы хотел как-то создать CAST или Convert on the Query, который отправляется в SQL, чтобы преобразовать его, прежде чем он вернется в мое приложение

Тип определяется следующим образом (я пытался заставить его быть определенного типа)

[Column(TypeName = "varbinary(max)")]

public byte[] WKBData { get; set; }

Метод OnModelCreating

modelBuilder.Configurations.Add(new WKBModelMap(wkbTableName, schema));

Модель-карта

public WKBModelMap(string tableIdentifier, string schema = "mrc")
        {
            this.HasKey(t => t.ElementID);//set the primary key of the EAV table

            //map the tablename
            string tableName = $"{schema}.{tableIdentifier}";
            this.ToTable(tableName);
            //this.Property(p => p.WKBData);

        }

Я использую универсальный класс Repository для получения моих данных

public virtual IQueryable<TEntity> Get(
            Expression<Func<TEntity, bool>> filter = null,
            Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null,
            string includeProperties = "")
        {
            IQueryable<TEntity> query = dbSet;

            if (filter != null)
            {
                query = query.Where(filter);
            }

            foreach (var includeProperty in includeProperties.Split
                (new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
            {
                query = query.Include(includeProperty);
            }

            if (orderBy != null)
            {
                return orderBy(query);
            }
            else
            {
                return query;
            }
        }

Поэтому, когда я вызываю метод Get, у меня появляется исключение типа CLR, поэтому я хотел знать, могу ли я использовать приведение к приведенному выше классу / отображению, чтобы заставить EF построить CAST или преобразовать в select?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...