亚音速 - 任何人都可以提供使用亚音速SimpleRepository坚持对象的列表/阵列的实例?(

2019-08-31 13:45发布

我在寻找可能的方法来坚持以下类。 亚音速SimpleRepository看起来像它可能会奏效,人们纷纷表示应该,当我问一个更普遍的问题 。

但我一直无法找到如何做到这一点只举一个例子 - 或至少一种我能理解。

任何人都可以点我一个例子,或者告诉我怎样可以用亚音速以下类映射到数据库?

请注意, 我没有设计数据库 - 我希望亚音速会为我做的 ,懒惰的草皮,我...

编辑:只是为了扩大对前一点-我希望能有亚音速转换我的对象模型到关系数据库,处理所有那些隐含的亲子和一个一对多的关系。 目前,我不认为亚音速可以做到这一点。 但是,即便是明确管理外键等对象模型的工作示例 (不是一个代码片段)将是有益的。

一些背景和笔记上我要坚持的类:

  • 它们被用来通过控制某些测量设备软件
  • 数据类包含RunData对象数组称为RunFn,它保存多达10个单独的测量过程中的数据
  • 注意,RunData还包含float数组- RawY
  • 如果需要的话,我们可以通过改变阵列以某种其他类型的集合(列表<>等)的
  • 在C#中,VS2008开发,SQL Server Express的

编辑:我使用的是亚音速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;
        }
    }
}

Answer 1:

我不知道我会回答你问这里的一切,但如果我实现这个使用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); }
  }
}

我想象亚音速会有麻烦pluralising一些名字,所以你可能需要改变他们,但希望这将让你开始。



Answer 2:

要回答我的问题?

尽管我发现这暗示亚音速SimpleRepository可以自动生成从对象模型关系模式其他一些贴子, 这个结果并非如此 。 见罗布科纳的回答这个问题:

关系-和延迟加载,在亚音速-3-0

他的工作就可以了,但是,它可能将是非常值得期待的。

在此期间,我看过功能NHibernate,这不会是我想要的开箱什么。 其源代码下载有一个名为Examples.FirstProject一个示范项目,这表明我正在寻找的功能。 他们的文档似乎更加成熟为好。

当然,NHibernate也显得更复杂的整体,所以这将是有趣的,看看有什么亚音速发展。

编辑:下面有一个有用的链接,显示了如何对依法治自己外键在SimpleRepository -

亚音速-3- simplerepository

还没有尝试过自己,但看起来它会实际工作。



文章来源: Subsonic - can anyone provide an example of using Subsonic SimpleRepository to persist a list/array of objects?