Skip to content

Instantly share code, notes, and snippets.

@avifatal
Created May 10, 2020 05:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save avifatal/8f45a3cbe5d352313265ea8d964c2a69 to your computer and use it in GitHub Desktop.
Save avifatal/8f45a3cbe5d352313265ea8d964c2a69 to your computer and use it in GitHub Desktop.
public class BaseEntity
{
[AutoIncrement]
[PrimaryKey]
public long Id { get; set; }
}
public class ResearchEntity : BaseEntity
{
[References(typeof(NameEntity))]
public long? PrimaryNameId { get; set; }
[Reference]
public NameEntity PrimaryName { get; set; }
[Reference]
public List<NameEntity> Names { get; set; } = new List<NameEntity>();
}
public class NameEntity : BaseEntity
{
public string Value { get; set; }
[References(typeof(ResearchEntity))]
public long ResearchId { get; set; }
[Reference]
public ResearchEntity Research { get; set; }
}
public class UnitTest1
{
[Fact]
public void Test1()
{
var dbFactory = new OrmLiteConnectionFactory("Server=127.0.0.1;Database=db2;Port=3307;Uid=root;Pwd=root;", MySqlDialect.Provider);
var db = dbFactory.Open();
db.ExecuteSql("SET FOREIGN_KEY_CHECKS = 0;");
db.DropAndCreateTable<NameEntity>();
db.DropAndCreateTable<ResearchEntity>();
db.ExecuteSql("SET FOREIGN_KEY_CHECKS = 1;");
var research = new ResearchEntity();
research.Names.Add(new NameEntity { Value = "test 1" });
research.Names.Add(new NameEntity { Value = "test 2" });
research.Names.Add(new NameEntity { Value = "test 3" });
db.Save(research, references: true);
research.PrimaryName = research.Names[1];
db.Save(research, references: true);
var res = db.LoadSelect(db.From<ResearchEntity>().Where(x => x.Id == 1));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment