我当前正在处理一个为其列之一具有自定义CLR类型的数据库,如果我尝试使用EDMX文件,它不会事件识别该列或不允许我将其包括在属性列表中桌子
我在模型对象上创建了一个属性(因为我在代码中使用了Dynamic DBConext,所以我只需要EDMX复制生成的类文件),就可以了,并且在出现数据库查询时运行数据库查询回到转换查询,我得到一个错误,表明EF正在寻找自定义CLR类型的DLL,
我想以某种方式在发送给SQL的查询上创建CAST或转换,以在返回到我的应用程序之前对其进行转换
类型定义如下(我试图将其强制为特定类型)
[Column(TypeName = "varbinary(max)")]
public byte[] WKBData { get; set; }
OnModelCreating方法
modelBuilder.Configurations.Add(new WKBModelMap(wkbTableName, schema));
ModelMap
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上进行转换吗? / p>