当前位置: 首页>>代码示例>>C#>>正文


C# IDocumentSession.Query方法代码示例

本文整理汇总了C#中IDocumentSession.Query方法的典型用法代码示例。如果您正苦于以下问题:C# IDocumentSession.Query方法的具体用法?C# IDocumentSession.Query怎么用?C# IDocumentSession.Query使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IDocumentSession的用法示例。


在下文中一共展示了IDocumentSession.Query方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: CreateOrder

        public static string CreateOrder(IDocumentSession session)
        {
            var random = new Random((int)(DateTime.Now.Ticks % Int32.MaxValue));

            var products = session.Query<Product>().ToList();
            var customers = session.Query<Customer>().ToList();
            if (!customers.Any())
                return "Init required";

            var customer = customers.ElementAt(random.Next() % customers.Count());
            var address = customer.Addresses.SingleOrDefault(a => a.Type == AddressOptions.Home)
                          ?? customer.Addresses.First();

            var order = new Order
            {
                Date = DateTime.Today,
                Customer = customer.Name,
                ShippingAddress = address.AddressDesc + ", " + address.Country + " " + address.PostalCode
            };

            for (var i = 0; i < random.Next(2, 4); i++)
            {
                order.OrderLines.Add(CreateOrderLine(products, random));
            }

            order.GrandTotal = order.OrderLines.Sum(l => l.Total);

            session.Store(order);

            return String.Empty;
        }
开发者ID:plaurin,项目名称:RavenDBDemo,代码行数:31,代码来源:InitRepository.cs

示例2: string_fields

        // ENDSAMPLE

        // SAMPLE: searching_within_string_fields
        public void string_fields(IDocumentSession session)
        {
            session.Query<Target>().Where(x => x.String.StartsWith("A"));
            session.Query<Target>().Where(x => x.String.EndsWith("Suffix"));

            session.Query<Target>().Where(x => x.String.Contains("something"));
        }
开发者ID:kiliman,项目名称:marten,代码行数:10,代码来源:LinqExamples.cs

示例3: ServersModule

		public ServersModule(IDocumentSession session)
			: base("/api/servers")
		{
			Get[""] = parameters =>
			{
				var statistics = new ClusterStatistics();
				statistics.Servers = session.Query<ServerRecord>()
					.OrderBy(record => record.Id)
					.Take(1024)
					.ToList();

				statistics.Credentials = session.Query<ServerCredentials>()
					.OrderByDescending(credentials => credentials.Id)
					.Take(1024)
					.ToList();


				return statistics;
			};

			Delete["/{id}"] = parameters =>
			{
				var id = (string)parameters.id;
				session.Advanced.DocumentStore.DatabaseCommands.Delete(id, null);
				return true;
			};
		}
开发者ID:925coder,项目名称:ravendb,代码行数:27,代码来源:ServersModule.cs

示例4: SearchModule

        public SearchModule(IDocumentSession documentSession)
            : base("/search")
        {
            Post["/GetMostPopularDinners"] = parameters =>
                {

                    // Default the limit to 40, if not supplied.
                    if (!this.Request.Form.limit.HasValue || String.IsNullOrWhiteSpace(this.Request.Form.limit))
                        this.Request.Form.limit = 40;

                    var jsonDinners = documentSession.Query<JsonDinner, Dinners_Index>()
                        .Where(x => x.EventDate >= DateTime.Now.Date)
                        .Take((int)this.Request.Form.limit)
                        .OrderByDescending(x => x.RSVPCount)
                        .AsProjection<JsonDinner>()
                        .ToList();

                    return Response.AsJson(jsonDinners);
                };

            Post["/SearchByLocation"] = parameters =>
            {

                double latitude = (double)this.Request.Form.latitude;
                double longitude = (double)this.Request.Form.longitude;

                var dinners = documentSession.Query<Dinner, Dinners_Index>()
                                .Where(x => x.EventDate > DateTime.Now.Date)
                                .AsEnumerable()
                                .Where(x => DistanceBetween(x.Latitude, x.Longitude, latitude, longitude) < 1000).Select(x => JsonDinnerFromDinner(x));

                return Response.AsJson(dinners.ToList());
            };
        }
开发者ID:modulexcite,项目名称:DinnerParty,代码行数:34,代码来源:SearchModule.cs

示例5: and_or

        // ENDSAMPLE

        // SAMPLE: querying_with_and_or_or
        public void and_or(IDocumentSession session)
        {
            // AND queries
            session.Query<Target>().Where(x => x.Number > 0 && x.Number <= 5);

            // OR queries
            session.Query<Target>().Where(x => x.Number == 5 || x.Date == DateTime.Today);
        }
开发者ID:danielmarbach,项目名称:marten,代码行数:11,代码来源:LinqExamples.cs

示例6: case_insensitive_string_fields

        // ENDSAMPLE

        // SAMPLE: searching_within_case_insensitive_string_fields
        public void case_insensitive_string_fields(IDocumentSession session)
        {
            session.Query<Target>().Where(x => x.String.StartsWith("A", StringComparison.OrdinalIgnoreCase));
            session.Query<Target>().Where(x => x.String.EndsWith("SuFfiX", StringComparison.OrdinalIgnoreCase));

            // using Marten.Util
            session.Query<Target>().Where(x => x.String.Contains("soMeThiNg", StringComparison.OrdinalIgnoreCase));
        }
开发者ID:danielmarbach,项目名称:marten,代码行数:11,代码来源:LinqExamples.cs

示例7: GetAll

 public static Merchant[] GetAll(IDocumentSession session, string[] keywords)
 {
     if (keywords == null || keywords.Length == 0)
             return session.Query<Merchant>().ToArray();
     return session.Query<Merchant>()
         .Where(m => m.Keywords.Any(k => k.In(keywords)))
         .ToArray();
 }
开发者ID:igorshapiro,项目名称:qapp,代码行数:8,代码来源:Merchant.cs

示例8: Delete

 public static void Delete(this Project project, IDocumentSession session)
 {
     session.Query<Activity>()
         .Where(a => a.Project == project.Id).ToList().ForEach(a => a.Delete(session));
     session.Query<Discussion>()
         .Where(d => d.Entity == project.Id).ToList().ForEach(d => d.Delete(session));
     session.Delete(project);
 }
开发者ID:jsbsantos,项目名称:teamworks,代码行数:8,代码来源:ProjectExtensions.cs

示例9: order_by

        // ENDSAMPLE

        // SAMPLE: ordering-in-linq
        public void order_by(IDocumentSession session)
        {
            // Sort in ascending order
            session.Query<Target>().OrderBy(x => x.Date);

            // Sort in descending order
            session.Query<Target>().OrderByDescending(x => x.Date);

            // You can use multiple order by's
            session.Query<Target>().OrderBy(x => x.Date).ThenBy(x => x.Number);
        }
开发者ID:danielmarbach,项目名称:marten,代码行数:14,代码来源:LinqExamples.cs

示例10: SearchModule

        public SearchModule(IDocumentSession documentSession)
            : base("/search")
        {
            Post["/GetMostPopularDinners"] = parameters =>
                {

                    // Default the limit to 40, if not supplied.
                    if (!Request.Form.limit.HasValue || String.IsNullOrWhiteSpace(Request.Form.limit))
                        Request.Form.limit = 40;

                    //var jsonDinners = documentSession.Query<Dinner>()
                    //    .Where(x => x.EventDate >= DateTime.Now.Date)
                    //    .Take((int)this.Request.Form.limit)
                    //    .OrderByDescending(x => x.RSVPCount)
                    //    .AsProjection<JsonDinner>()
                    //    .ToList();

                    // TODO: Not sure this will work
                    var jsonDinners = documentSession.Query<Dinner>()
                                                     .Where(x => x.EventDate >= DateTime.Now.Date)
                                                     .Take((int)Request.Form.limit)
                                                     .OrderByDescending(x => x.RSVPs.Count)
                                                     .Select(x => new JsonDinner
                                                                  {
                                                                      EventDate = x.EventDate,
                                                                      Description = x.Description,
                                                                      DinnerID = x.DinnerID,
                                                                      Longitude = x.Longitude,
                                                                      Latitude = x.Latitude,
                                                                      Title = x.Title,
                                                                      Url = x.DinnerID,
                                                                      RSVPCount = x.RSVPs.Count
                                                                  })
                                                     .ToList();

                    return Response.AsJson(jsonDinners);
                };

            Post["/SearchByLocation"] = parameters =>
            {

                var latitude = (double)Request.Form.latitude;
                var longitude = (double)Request.Form.longitude;

                var dinners = documentSession.Query<Dinner>()
                                .Where(x => x.EventDate > DateTime.Now.Date)
                                .AsEnumerable()
                                .Where(x => DistanceBetween(x.Latitude, x.Longitude, latitude, longitude) < 1000).Select(x => JsonDinnerFromDinner(x));

                return Response.AsJson(dinners.ToList());
            };
        }
开发者ID:danielmarbach,项目名称:marten,代码行数:52,代码来源:SearchModule.cs

示例11: ResolvePath

        public IPathData ResolvePath(string virtualUrl)
        {
            // Set the default action to index
            _pathData.Action = ContentRoute.DefaultAction;
            // Set the default controller to content
            _pathData.Controller = ContentRoute.DefaultControllerName;
            // Get an up to date document session from structuremap
            _session = ObjectFactory.GetInstance<IDocumentSession>();
            // The requested url is for the start page with no action
            if (string.IsNullOrEmpty(virtualUrl) || string.Equals(virtualUrl,"/")) {
                _pageModel = _session.Query<IPageModel>()
                    .Customize(x => x.WaitForNonStaleResultsAsOfLastWrite())
                    .SingleOrDefault(x => x.Parent == null);
                _pathData.CurrentPageModel = _pageModel;

                return _pathData;
            }
            // Remove the trailing slash
            virtualUrl = VirtualPathUtility.RemoveTrailingSlash(virtualUrl);
            // The normal beahaviour should be to load the page based on the url
            _pageModel = _session.Query<IPageModel, Document_ByUrl>()
                    .Customize(x => x.WaitForNonStaleResultsAsOfLastWrite())
                    .FirstOrDefault(x => x.Metadata.Url == virtualUrl);
            // Try to load the page without the last segment of the url and set the last segment as action))
            if (_pageModel == null && virtualUrl.LastIndexOf("/", System.StringComparison.Ordinal) > 0) {
                var index = virtualUrl.LastIndexOf("/", System.StringComparison.Ordinal);
                var action = virtualUrl.Substring(index, virtualUrl.Length - index).Trim(new[] {'/'});
                virtualUrl = virtualUrl.Substring(0, index).TrimStart(new[] { '/' });
                _pageModel = _session.Query<IPageModel, Document_ByUrl>()
                    .Customize(x => x.WaitForNonStaleResultsAsOfLastWrite())
                    .FirstOrDefault(x => x.Metadata.Url == virtualUrl);
                _pathData.Action = action;
            }

            // If the page model still is empty, let's try to resolve if the start page has an action named (virtualUrl)
            if(_pageModel == null) {
                _pageModel = _session.Query<IPageModel>().SingleOrDefault(x => x.Parent == null);
                var controllerName = _controllerMapper.GetControllerName(typeof(ContentController));
                var action = virtualUrl.TrimStart(new[] {'/'});
                if(!_controllerMapper.ControllerHasAction(controllerName,action)) {
                    return null;
                }
                _pathData.Action = action;
            }

            if (_pageModel == null) {
                return null;
            }

            _pathData.CurrentPageModel = _pageModel;
            return _pathData;
        }
开发者ID:stemyers,项目名称:BrickPile,代码行数:52,代码来源:DashboardPathResolver.cs

示例12: QuestionModule

        // get rspv's from meetup.com
        // https://api.meetup.com/2/rsvps?key=YOUR_KEY&event_id=789&order=name
        public QuestionModule(IDocumentSession documentSession)
        {
            Get["/"] = _ =>
            {
                // RavenDB
                var questions = documentSession.Query<Question>().OrderByDescending(x => x.DateAsked).ToList();

                var viewModel = new IndexViewModel
                {
                    Questions = questions.Select(x => new QuestionViewModel(x)).ToList(),
                    Count = documentSession.Query<Question>().Count(),
                };

                return View["Index", viewModel];
            };
        }
开发者ID:LeedsSharp,项目名称:DoctorSharp,代码行数:18,代码来源:QuestionModule.cs

示例13: PeformQuery

		private static IQueryable<Package> PeformQuery(IDocumentSession session, string search, bool guessIfNoResultsFound = true)
		{
			var q = session.Query<PackageSearch>("Packages/Search")
				.Search(x => x.Query, search)
				.Where(x => x.IsLatestVersion && x.IsAbsoluteLatestVersion && x.IsPrerelease == false)
				.As<Package>()
				.OrderByDescending(x => x.VersionDownloadCount).ThenBy(x => x.Created)
				.Take(3);
			var packages = q.ToList();

			if (packages.Count > 0)
			{
				foreach (var package in packages)
				{
					Console.WriteLine("\t{0}", package.Id);
				}
				return q;
			}
			
			if (guessIfNoResultsFound)
			{
				DidYouMean(session, search);
			}
			else
			{
				Console.WriteLine("\tNo search results were found");
			}

			return null;
		}
开发者ID:ayende,项目名称:nuget.perf,代码行数:30,代码来源:Program.cs

示例14: ContactModule

        public ContactModule(IDocumentSession ravenSession)
            : base("/api/contact")
        {
            Get["/"] = parameters =>
                           {
                               var contacts = ravenSession.Query<Contact>()
                                   .OrderBy(x => x.LastName)
                                   .Take(15)
                                   .ToList();

                               return Response.AsJson(contacts);
                           };

            Get["/{id}"] = parameters =>
                               {
                                   string contactId = "contact/" + parameters.id;
                                   var contact = ravenSession.Load<Contact>(contactId);
                                   return Response.AsJson(contact);
                               };

            Post["/"] = parameters =>
                            {
                                Contact newContact = this.Bind();

                                newContact.DateOfDeath = newContact.DateOfDeath == DateTime.MinValue
                                                             ? null
                                                             : newContact.DateOfDeath;

                                ravenSession.Store(newContact);
                                return Response.AsJson(newContact);
                            };
        }
开发者ID:imonthercks,项目名称:phibook,代码行数:32,代码来源:ContactModule.cs

示例15: RobotProjectionModule

        public RobotProjectionModule(IDocumentSession documentSession)
        {
            Get["/robot/{name}"] = parameters =>
            {
                if (string.IsNullOrWhiteSpace(parameters.name))
                    return HttpStatusCode.BadRequest;

                var robotResult = documentSession.Load<Robot>(Robot.GetRobotIdFromName(parameters.name));
                if (robotResult == null)
                    return HttpStatusCode.NotFound;

                return Response.AsJson(robotResult as object);
            };

            Get["/robot/byowner/{email}"] = parameters =>
            {
                if (string.IsNullOrWhiteSpace(parameters.email))
                    return HttpStatusCode.BadRequest;

                string email = parameters.email;
                var robotResult = documentSession.Query<Robot>().FirstOrDefault(x => x.OwnerEMail.Equals(email, StringComparison.CurrentCultureIgnoreCase));
                if (robotResult == null)
                    return HttpStatusCode.NotFound;

                return Response.AsJson(robotResult as object);
            };
        }
开发者ID:emilcardell,项目名称:ForeverRobot,代码行数:27,代码来源:RobotProjectionModule.cs


注:本文中的IDocumentSession.Query方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。