我有一个使用外部库的Orchard CMS模块。我需要使用该库中的一些类作为Orchard记录的一部分。 例如,外部程序集包含类
public class Operation {
public virtual long Id { get; set; }
public virtual string OperationType { get; set; }
}
我必须将它存储在数据库中,以便与Orchard IRepository一起使用,并将其用作其他Orchard CMS记录的一部分,例如
public class HistoryRecord {
public virtual long Id { get; set; }
public virtual DateTime Updated { get; set; }
public virtual Operation Operation { get; set; }
}
答案 0 :(得分:0)
我能够根据Fluet Configuration
获得部分解决方案。但是,仅当类与Orchard的命名约定相对应时,它才有效。
这是:
public class SessionConfiguration : ISessionConfigurationEvents {
public void Created(FluentConfiguration cfg, AutoPersistenceModel defaultModel) {
var ts = new TypeSource(new[] { typeof(OperationRecord) });
cfg.Mappings(m => m.AutoMappings.Add(AutoMap.Source(ts)
.Override<OperationRecord>(mapping => mapping.Table("Custom_Module_OperationRecord"))
));
}
public void Prepared(FluentConfiguration cfg) { }
public void Building(Configuration cfg) { }
public void Finished(Configuration cfg) { }
public void ComputingHash(Hash hash) { }
}
public class TypeSource : ITypeSource {
private readonly IEnumerable<Type> _types;
public TypeSource(IEnumerable<Type> types) {
_types = types;
}
public IEnumerable<Type> GetTypes() {
return _types;
}
public void LogSource(IDiagnosticLogger logger) {
throw new NotImplementedException();
}
public string GetIdentifier() {
throw new NotImplementedException();
}
}