Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using Marten;
- using Marten.Linq;
- using System;
- using System.Linq;
- namespace DemoBugMarten
- {
- class User
- {
- public Guid Id { get; set; }
- public string RealName { get; set; }
- public string DisplayName { get; set; }
- }
- class MegaUser : User
- {
- }
- public class UserMartenRegistry : MartenRegistry
- {
- public UserMartenRegistry()
- {
- this.For<User>().AddSubClass<MegaUser>();
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- var megaUser1 = new MegaUser() { DisplayName = "Yann", RealName = "Yann Yann" };
- var megaUser2 = new MegaUser() { DisplayName = "Robin", RealName = "Robin Robin" };
- var megaUser3 = new MegaUser() { DisplayName = "Marten", RealName = "Marten Marten" };
- var cs = "Host=localhost;Port=5432;Database=demo;User ID=postgres;Password=password";
- var store = DocumentStore.For(_ =>
- {
- _.AutoCreateSchemaObjects = AutoCreate.CreateOrUpdate;
- _.Connection(cs);
- _.CreateDatabasesForTenants(c =>
- c.ForTenant()
- .CheckAgainstPgDatabase()
- .WithOwner("postgres")
- .WithEncoding("UTF-8")
- .ConnectionLimit(-1));
- _.Schema.Include<UserMartenRegistry>();
- });
- var session = store.OpenSession();
- session.DeleteWhere<MegaUser>(_ => true);
- session.Insert(megaUser1);
- session.Insert(megaUser2);
- session.Insert(megaUser3);
- session.SaveChanges();
- var query = session.Query<MegaUser>()
- .Where(_ => _.DisplayName == "Yann" || _.DisplayName == "Robin");
- var cmd = query.ToCommand(FetchType.FetchMany);
- Console.WriteLine(cmd.CommandText);
- var queryList = query.ToList();
- foreach (var item in queryList)
- {
- Console.WriteLine(item.DisplayName);
- }
- Console.ReadLine();
- }
- }
- }
Add Comment
Please, Sign In to add comment