Created
April 13, 2018 13:16
-
-
Save kYann/9fe0fd4e860049552439984789e35e8f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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(); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment