چطور در سی شارپ برای کوئری های MongoDB نام پراپرتی ها را به CamelCase تبدیل کنیم؟

mohsen1 سال قبل
ارسال شده در
mohsen

اگر در C# بخواهیم از MongoDB استفاده کنیم، می توانیم از LINQ برای کوئری زدن روی داده ها استفاده کنیم. برای مثال فرض کنید که کلاس زیر را در C# داریم:

      public class Restaurant
{
    public ObjectId Id { get; set; }
    public string Name { get; set; }
    public string RestaurantId { get; set; }
    public string Cuisine { get; set; }
    public Address Address { get; set; }
    public string Borough { get; set; }
    public List<GradeEntry> Grades { get; set; }
}
    

و می خواهیم بر اساس شناسه رستوران از بین داده ها رستورانی را پیدا کنیم:

      var query = queryableCollection
    .Where(r => r.RestaurantId == 2)
    .Select(r => new { r.Name, r.Address });
    

اگر داکیومنت های ما در MongoDB با نام پراپرتی های CamelCase ذخیره شده باشند، این کوئری نتیجه ای در بر نخواهد داشت چون در کوئری RestaurantId مورد استفاده قرار میگیرد که در بین نام فیلدهای ما در دیتابیس وجود ندارد.

برای همین می توانیم در زمان شروع برنامه (رجیستر کردن سرویس ها) کد زیر را استفاده کنیم تا به صورت خودکار تمامی پراپرتی ها به فرم CamelCase در بیایند:

      var pack = new ConventionPack();
pack.Add(new CamelCaseElementNameConvention());
ConventionRegistry.Register("CamelCaseConvention", pack, t => true);
    
رای
0
ارسال نظر
مرتب سازی:
اولین نفری باشید که نظر می دهید!