Linq to sql 没有DataContext的Linq到SQL映射数据
是否可以在没有DataContext实例的情况下访问Linq到SQL映射数据 我这样问是因为我正在编写一些审计数据生成代码,这些代码只会触发某些实体和某些实体列。在任何LINQDB访问之前,我想在静态构造函数中修复此元数据 例如,从性能角度来看,最好只发现一次实体的主键列,而不是为变更集中的每个变更实体触发以下代码:Linq to sql 没有DataContext的Linq到SQL映射数据,linq-to-sql,audit,Linq To Sql,Audit,是否可以在没有DataContext实例的情况下访问Linq到SQL映射数据 我这样问是因为我正在编写一些审计数据生成代码,这些代码只会触发某些实体和某些实体列。在任何LINQDB访问之前,我想在静态构造函数中修复此元数据 例如,从性能角度来看,最好只发现一次实体的主键列,而不是为变更集中的每个变更实体触发以下代码: var metaTable = context.Mapping.GetTable(entityType); var key = (PropertyInfo)metaTable.Ro
var metaTable = context.Mapping.GetTable(entityType);
var key = (PropertyInfo)metaTable.RowType.DataMembers.Single(
md => md.IsPrimaryKey).Member;
致电前:
key.GetValue(entity, null),
是的,您不需要
DataContext
的实例,只需要类型
MappingSource mappingSource = new AttributeMappingSource();
MetaModel mapping = mappingSource.GetModel(typeof(MyDataContext));
这里我使用的是
AttributeMappingSource
,您可以使用XmlMappingSource
或MappingSource的其他实现。因为我刚刚将表名拖到Visual Studio Linq模型窗口中,所以我假设我只需要一个AttributeMappingSource映射源?是的,VS设计器使用属性。