我正在寻找可能的方法来保留以下课程。亚音速简单存储库看起来它可能有效,而且当我问一个人时,人们说它应该有效更一般的问题 https://stackoverflow.com/questions/1527805/orms-that-work-with-complex-net-generic-objects-e-g-nested-list-etc.
但我一直无法找到一个如何做到这一点的例子 - 或者至少一个我能理解的例子。
谁能给我举个例子,或者告诉我如何使用 Subsonic 将以下类映射到数据库?
注意我没有设计数据库 - 我希望 Subsonic 能为我做到这一点,懒惰的草皮,我是...
Edit:只是为了扩展上一点 - 我希望 Subsonic 将我的对象模型转换为关系数据库,处理所有隐含的父子关系和一对多关系。目前,我认为 Subsonic 无法做到这一点。但即使是一个工作示例(不是代码片段)在对象模型中显式管理外键等将很有用。
关于我想要坚持的课程的一些背景和注释:
- 它们由控制某些测量设备的软件使用
- the Data类包含一个数组RunData称为的对象RunFn,它保存的数据长达
10 次独立测量运行
- 注意RunData还包含一个数组
花车数量 -RawY
- 如果有必要,我们可以将数组更改为其他类型的集合(List 等)
- 使用 C#、VS2008、针对 SQL Server Express 进行开发
Edit:我正在使用亚音速 3.0.0.3。
public class RunData
{
public DateTime StartDateTime { get; set; }
public TimeSpan ElapsedTime { get; set; }
private float[] _rawY;
public float[] RawY
{
get
{
return _rawY;
}
set
{
_rawY = value;
}
}
}
public Data
{
public string OperatorId { get; set; }
public string SampleId { get; set; }
// CAN SUBSONIC DEAL WITH THIS ARRAY OF OBJECTS???
private RunData[] _runFn;
public RunData[] RunFn
{
get
{
return _runFn;
}
set
{
_runFn = value;
}
}
}
我不确定我是否会回答您在这里提出的所有问题,但如果我使用 SimpleRepository 实现此操作,我将拥有以下模型:
public class RawYValue
{
public int Id { get; set; }
public int RunDatumId { get; set; }
public float YValue { get; set; }
}
public class RunDatum
{
var repo = new SimpleRepository();
public int Id { get; set; }
public int DataId { get; set; }
public DateTime StartDateTime { get; set; }
public TimeSpan ElapsedTime { get; set; }
public IQueryable<RawYValue> RawYValues
{
get { return repo.Find<RawYValue>(rawYValue => rawYValue.RunDatumId == Id); }
}
}
public Data
{
var repo = new SimpleRepository();
public int Id { get; set; }
public string OperatorId { get; set; }
public string SampleId { get; set; }
// CAN SUBSONIC DEAL WITH THIS ARRAY OF OBJECTS???
public IQueryable<RunDatum> RunData
{
get { return repo.Find<RunDatum>(runDatum => runDatum.DataId == Id); }
}
}
我想 SubSonic 在复数某些名称时会遇到困难,因此您可能需要更改它们,但希望这能让您开始。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)