Subsonic - هل يمكن لأي شخص تقديم مثال على استخدام Subsonic SimpleRepository للاستمرار في قائمة/مجموعة من الكائنات؟

StackOverflow https://stackoverflow.com/questions/1610362

سؤال

أنا أبحث عن الطرق الممكنة للاستمرار في الفصول التالية.دون سرعة الصوت SimpleRepository يبدو أنه قد ينجح، وقد قال الناس أنه ينبغي ذلك، عندما سألت أ سؤال أكثر عمومية.

لكنني لم أتمكن من العثور على مثال واحد لكيفية القيام بذلك - أو على الأقل مثال واحد أستطيع أن أفهمه.

هل يمكن لأي أحد أن يوجهني إلى مثال، أو يخبرني كيف يمكنني استخدام Subsonic لتعيين الفئات التالية إلى قاعدة بيانات؟

لاحظ أن لم أقم بتصميم قاعدة البيانات - آمل أن تقوم شركة Subsonic بذلك من أجلي, أيها الأحمق الكسول أنا...

يحرر: فقط للتوسع في النقطة السابقة - آمل أن أجعل شركة Subsonic تقوم بتحويل نموذج الكائن الخاص بي إلى قاعدة بيانات علائقية، والتعامل مع جميع العلاقات الضمنية بين الوالدين والطفل والعلاقات بين شخصين.حاليًا، لا أعتقد أن Subsonic يمكنها فعل ذلك.ولكن حتى أ مثال عملي (ليس جزءًا من التعليمات البرمجية) الذي يدير المفاتيح الخارجية بشكل صريح، وما إلى ذلك في نموذج الكائن سيكون مفيدًا.

بعض المعلومات الأساسية والملاحظات حول الفصول الدراسية التي أريد الاستمرار فيها:

  • يتم استخدامها بواسطة البرنامج الذي يتحكم في بعض أجهزة القياس
  • ال بيانات فئة تحتوي على مجموعة من RunData الكائنات تسمىRunFn, ، الذي يحمل البيانات لما يصل إلى 10 عمليات قياس فردية
  • .لاحظ أن RunData يحتوي أيضًا على مجموعة من العوامات - راوي
  • إذا لزم الأمر، يمكننا تغيير المصفوفات إلى نوع آخر من المجموعات (قائمة<>، إلخ)
  • التطوير في C#، VS2008، لـ SQL Server Express

يحرر: أنا أستخدم Subsonic 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;
        }
    }
}
هل كانت مفيدة؟

المحلول 2

للإجابة على سؤالي...

على الرغم من بعض المنشورات الأخرى التي وجدتها والتي تشير ضمنًا إلى أن Subsonic SimpleRepository يمكنه إنشاء مخطط علائقي تلقائيًا من نموذج كائن، تبين أن هذا ليس هو الحال.انظر إجابة Rob Conery على هذا السؤال:

العلاقات-والتحميل-الكسول-في-دون سرعة الصوت-3-0

إنه يعمل على ذلك، وربما يستحق الانتظار.

في هذه الأثناء، لقد نظرت يجيد السبات, ، وهذا يفعل ما أريد مباشرة خارج الصندوق.يحتوي تنزيل الكود المصدري الخاص بهم على مشروع تجريبي يسمى examples.FirstProject والذي يوضح الوظيفة التي أبحث عنها.يبدو أن وثائقهم أكثر نضجًا أيضًا.

ومع ذلك، يبدو NHibernate أيضًا أكثر تعقيدًا بشكل عام، لذلك سيكون من المثير للاهتمام رؤية ما يتطور مع Subsonic.

يحرر: إليك رابطًا مفيدًا يوضح كيفية إدارة المفاتيح الخارجية بنفسك في SimpleRepository -

subsonic-3-simplerepository

لم أجربه بنفسي، ولكن يبدو أنه سينجح بالفعل.

نصائح أخرى

لست متأكدًا من أنني سأجيب على كل ما تطرحه هنا، ولكن إذا كنت أقوم بتنفيذ ذلك باستخدام 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 ستواجه مشكلة في جمع بعض الأسماء لذا قد تحتاج إلى تغييرها ولكن نأمل أن يساعدك هذا على البدء.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top