Update API
This commit is contained in:
@@ -4,7 +4,9 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Church.Net.Entity;
|
||||
using Church.Net.Entity.Messenger;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
namespace Church.Net.DAL.EF
|
||||
{
|
||||
@@ -17,7 +19,7 @@ namespace Church.Net.DAL.EF
|
||||
|
||||
// public ChurchNetContext(string connString):base(connString)
|
||||
// {
|
||||
|
||||
|
||||
// }
|
||||
// //public DbSet<PastoralDomain> PastoralDomains { get; set; }
|
||||
// //public DbSet<FamilyMember> FamilyMembers { get; set; }
|
||||
@@ -36,7 +38,10 @@ namespace Church.Net.DAL.EF
|
||||
public class ChurchNetContext : DbContext
|
||||
{
|
||||
private static bool _created = true;
|
||||
public ChurchNetContext(DbContextOptions<ChurchNetContext> options) :base(options)
|
||||
private readonly string connectionString;
|
||||
|
||||
|
||||
public ChurchNetContext(DbContextOptions<ChurchNetContext> options) : base(options)
|
||||
{
|
||||
|
||||
}
|
||||
@@ -53,23 +58,23 @@ namespace Church.Net.DAL.EF
|
||||
// Database.EnsureCreated();
|
||||
// }
|
||||
//}
|
||||
//public ChurchNetContext(string connectionString)
|
||||
//{
|
||||
// var folder = Environment.SpecialFolder.LocalApplicationData;
|
||||
// var path = Environment.GetFolderPath(folder);
|
||||
// DbPath = System.IO.Path.Join(path, "ChurchNet.db");
|
||||
// DbPath = @"C:\WebSites\ChurchNetAPI\App_Data\ChurchNet.db";
|
||||
// if (!_created)
|
||||
// {
|
||||
// _created = true;
|
||||
// Database.EnsureDeleted();
|
||||
// Database.EnsureCreated();
|
||||
// }
|
||||
//}
|
||||
public ChurchNetContext(string connectionString)
|
||||
{
|
||||
this.connectionString = connectionString;
|
||||
|
||||
}
|
||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(connectionString))
|
||||
{
|
||||
optionsBuilder.UseNpgsql(connectionString);
|
||||
}
|
||||
|
||||
}
|
||||
//public DbSet<PastoralDomain> PastoralDomains { get; set; }
|
||||
//public DbSet<FamilyMember> FamilyMembers { get; set; }
|
||||
//public DbSet<Career> Careers { get; set; }
|
||||
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
//modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
|
||||
@@ -78,7 +83,7 @@ namespace Church.Net.DAL.EF
|
||||
|
||||
modelBuilder.Entity<CellGroupRoutineEventPrayer>()
|
||||
.HasKey(tt => new { tt.EventId, tt.MemberId });
|
||||
|
||||
|
||||
modelBuilder.Entity<FamilyMemberOAuth>()
|
||||
.HasKey(tt => new { tt.FamilyMemberId, tt.OAuthType });
|
||||
|
||||
@@ -91,9 +96,9 @@ namespace Church.Net.DAL.EF
|
||||
.HasKey(tt => new { tt.PastoralDomainCommunityAppId, tt.AutoReplyItemId });
|
||||
modelBuilder.Entity<PastoralDomainAutoReplys>()
|
||||
.HasOne(tt => tt.PastoralDomain)
|
||||
.WithMany(t=>t.AutoReplyItemRelations)
|
||||
.HasForeignKey(tt=>tt.PastoralDomainCommunityAppId)
|
||||
.HasPrincipalKey(tt=>tt.CommunityAppId);
|
||||
.WithMany(t => t.AutoReplyItemRelations)
|
||||
.HasForeignKey(tt => tt.PastoralDomainCommunityAppId)
|
||||
.HasPrincipalKey(tt => tt.CommunityAppId);
|
||||
|
||||
//modelBuilder.Entity<PastoralDomainMembers>()
|
||||
// .HasOne(t => t.PastoralDomain)
|
||||
@@ -130,7 +135,10 @@ namespace Church.Net.DAL.EF
|
||||
public DbSet<LogInfo> LogInfos { get; set; }
|
||||
public DbSet<AutoReplyItem> AutoReplyItems { get; set; }
|
||||
public DbSet<AddressInfo> AddressInfos { get; set; }
|
||||
public DbSet<LineMessageClient> LineMessageClients { get; set; }
|
||||
public DbSet<LineMessagingAccount> LineMessagingAccounts { get; set; }
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,210 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System.Collections.Generic;
|
||||
using System.Transactions;
|
||||
using System;
|
||||
using Church.Net.DAL.EF;
|
||||
using System.Linq;
|
||||
using Church.Net.Utility;
|
||||
using System.Threading.Tasks;
|
||||
using Church.Net.Entity.Interface;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Reflection;
|
||||
using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using Microsoft.EntityFrameworkCore.Metadata.Internal;
|
||||
|
||||
namespace Church.Net.DAL.EFCoreDBF
|
||||
{
|
||||
public class CrudDALCBase1<T> : ICrudDAL<T> where T : class, IEntity, new()
|
||||
{
|
||||
private readonly ChurchNetContext dbContext;
|
||||
|
||||
public CrudDALCBase1(DatabaseOptions databaseOptions)
|
||||
{
|
||||
this.dbContext = databaseOptions.GetDbContext();
|
||||
InitKeyProperty();
|
||||
}
|
||||
public IQueryable<T> GetDbSet()
|
||||
{
|
||||
//var result = (DbSet<T>)typeof(ChurchNetContext).GetMethod("Set").MakeGenericMethod(typeof(T)).Invoke(dbContext, null);
|
||||
|
||||
return dbContext.Set<T>().AsNoTracking();
|
||||
//return result;
|
||||
}
|
||||
|
||||
public virtual T First(Func<T, bool> filter = null)
|
||||
{
|
||||
return GetDbSet().Where(filter ?? (s => true)).FirstOrDefault();
|
||||
}
|
||||
|
||||
public virtual T GetById(string Id)
|
||||
{
|
||||
return this.GetQuery(new string[] { Id }).FirstOrDefault();
|
||||
}
|
||||
|
||||
//public virtual T GetByRefndx(string refndx)
|
||||
//{
|
||||
// return MapDBModelToEntity(GetFirstDBModelByRefndx<ST>(refndx, this.actionScreen));
|
||||
//}
|
||||
|
||||
public virtual IEnumerable<T> GetAll(Func<T, bool> filter = null)
|
||||
{
|
||||
//var dbObjs = GetDbSet().ToArray();
|
||||
|
||||
//IEnumerable<T> list = GetDbSet().Where(filter ?? (s => true)).ToList();
|
||||
|
||||
return GetDbSet().AsNoTracking().Where(filter ?? (s => true)).ToList();
|
||||
}
|
||||
|
||||
public virtual int Create(T entity)
|
||||
{
|
||||
this.CheckKeyIsEmpty(entity);
|
||||
this.ConvertUTCTime(entity);
|
||||
dbContext.Add(entity);
|
||||
|
||||
return dbContext.SaveChanges();
|
||||
}
|
||||
public virtual Task<int> CreateAsync(T entity)
|
||||
{
|
||||
this.CheckKeyIsEmpty(entity);
|
||||
this.ConvertUTCTime(entity);
|
||||
dbContext.Add(entity);
|
||||
|
||||
//CreateDone(entity, newDbObj);
|
||||
return dbContext.SaveChangesAsync();
|
||||
}
|
||||
|
||||
|
||||
public int CreateOrUpdate(T entity)
|
||||
{
|
||||
int result = 0;
|
||||
this.ConvertUTCTime(entity);
|
||||
if (CheckExist(entity))
|
||||
{
|
||||
result = this.Update(entity);
|
||||
}
|
||||
else
|
||||
{
|
||||
result = this.Create(entity);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public virtual int Update(T entity)
|
||||
{
|
||||
|
||||
//if (!this.CheckExist(entity))
|
||||
//{
|
||||
// throw new ArgumentNullException("the Id is not exist.");
|
||||
//}
|
||||
this.ConvertUTCTime(entity);
|
||||
|
||||
dbContext.Update(entity);
|
||||
|
||||
return dbContext.SaveChanges();
|
||||
|
||||
|
||||
}
|
||||
public virtual void CreateDone(T entity)
|
||||
{
|
||||
|
||||
}
|
||||
public virtual void UpdateDone(T entity)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public virtual int UpdateRange(IEnumerable<T> entities)
|
||||
{
|
||||
dbContext.UpdateRange(entities);
|
||||
|
||||
return dbContext.SaveChanges();
|
||||
}
|
||||
|
||||
public virtual int Delete(T obj)
|
||||
{
|
||||
dbContext.Remove(obj);
|
||||
return dbContext.SaveChanges();
|
||||
}
|
||||
|
||||
public int Delete(Func<T, bool> filter)
|
||||
{
|
||||
var list = GetDbSet().Where(filter).ToList();
|
||||
foreach (var item in list)
|
||||
{
|
||||
dbContext.Remove(item);
|
||||
}
|
||||
return dbContext.SaveChanges();
|
||||
}
|
||||
|
||||
public virtual bool CheckExist(T obj)
|
||||
{
|
||||
//var query = GetDbSet().AsQueryable();
|
||||
var query = GetAll();
|
||||
List<PropertyInfo> props = new List<PropertyInfo>();
|
||||
for (int i = 0; i < keyProps.Count; i++)
|
||||
{
|
||||
var prop = keyProps[i];
|
||||
props.Add(prop);
|
||||
var value = prop.GetValue(obj)?.ToString();
|
||||
query = query.Where(e => prop.GetValue(e)?.ToString() == value).ToList();
|
||||
}
|
||||
|
||||
return query.Any();
|
||||
}
|
||||
|
||||
private void ConvertUTCTime(T entity)
|
||||
{
|
||||
|
||||
var props = typeof(T).GetProperties();
|
||||
foreach (var prop in props)
|
||||
{
|
||||
if (prop.PropertyType == typeof(DateTime))
|
||||
{
|
||||
//do stuff like prop.SetValue(t, DateTime.Now, null);
|
||||
DateTime utcTime = ((DateTime)prop.GetValue(entity)).ToUniversalTime();
|
||||
prop.SetValue(entity, utcTime, null);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private List<PropertyInfo> keyProps;
|
||||
|
||||
protected virtual void InitKeyProperty()
|
||||
{
|
||||
keyProps = typeof(T).GetProperties().Where(
|
||||
prop => Attribute.IsDefined(prop, typeof(KeyAttribute))).OrderBy(prop =>
|
||||
prop.GetCustomAttribute<ColumnAttribute>().Order
|
||||
)
|
||||
.ToList();
|
||||
|
||||
}
|
||||
|
||||
protected IQueryable<T> GetQuery(IEnumerable<string> Ids)
|
||||
{
|
||||
var query = GetDbSet().AsQueryable();
|
||||
|
||||
for (int i = 0; i < keyProps.Count; i++)
|
||||
{
|
||||
query = query.Where(e => keyProps[i].GetValue(e).ToString() == Ids.ElementAt(i));
|
||||
}
|
||||
return query;
|
||||
}
|
||||
protected virtual void CheckKeyIsEmpty(T entity)
|
||||
{
|
||||
|
||||
if (string.IsNullOrWhiteSpace(entity.Id) || entity.Id.Length <= 3)
|
||||
{
|
||||
entity.Id = StringHelper.Get33BaseGuid();
|
||||
}
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -17,24 +17,34 @@ namespace Church.Net.DAL.EFCoreDBF
|
||||
{
|
||||
public class CombinedKeyCrudDALCBase<T> : ICombinedKeyCrudDAL<T> where T : class, Church.Net.Entity.Interface.ICombinedKeyEntity, new()
|
||||
{
|
||||
private readonly ChurchNetContext dbContext;
|
||||
private readonly DatabaseOptions databaseOptions;
|
||||
|
||||
public CombinedKeyCrudDALCBase(ChurchNetContext dbContext)
|
||||
{
|
||||
this.dbContext = dbContext;
|
||||
public CombinedKeyCrudDALCBase(DatabaseOptions databaseOptions)
|
||||
{
|
||||
this.databaseOptions = databaseOptions;
|
||||
InitKeyProperty();
|
||||
}
|
||||
public DbSet<T> GetDbSet()
|
||||
public IQueryable<T> GetDbSet()
|
||||
{
|
||||
//var result = (DbSet<T>)typeof(ChurchNetContext).GetMethod("Set").MakeGenericMethod(typeof(T)).Invoke(dbContext, null);
|
||||
|
||||
return (DbSet<T>)dbContext.Set<T>();
|
||||
return databaseOptions.GetDbContext().Set<T>().AsNoTracking();
|
||||
//return result;
|
||||
}
|
||||
|
||||
public ChurchNetContext GetDbContext()
|
||||
{
|
||||
//var result = (DbSet<T>)typeof(ChurchNetContext).GetMethod("Set").MakeGenericMethod(typeof(T)).Invoke(dbContext, null);
|
||||
|
||||
return databaseOptions.GetDbContext();//.Set<T>().AsNoTracking();
|
||||
//return result;
|
||||
}
|
||||
public virtual T First(Func<T, bool> filter = null)
|
||||
{
|
||||
return GetDbSet().Where(filter ?? (s => true)).FirstOrDefault();
|
||||
using (var dbContext = GetDbContext())
|
||||
{
|
||||
return dbContext.Set<T>().Where(filter ?? (s => true)).FirstOrDefault();
|
||||
}
|
||||
}
|
||||
|
||||
public virtual T GetById(IEnumerable<string> Ids)
|
||||
@@ -60,18 +70,25 @@ namespace Church.Net.DAL.EFCoreDBF
|
||||
{
|
||||
this.CheckCombinedKeyIsEmpty(entity);
|
||||
this.ConvertUTCTime(entity);
|
||||
dbContext.Add(entity);
|
||||
|
||||
return dbContext.SaveChanges();
|
||||
using (var dbContext = GetDbContext())
|
||||
{
|
||||
dbContext.Add(entity);
|
||||
|
||||
return dbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
public virtual Task<int> CreateAsync(T entity)
|
||||
{
|
||||
this.CheckCombinedKeyIsEmpty(entity);
|
||||
this.ConvertUTCTime(entity);
|
||||
dbContext.Add(entity);
|
||||
using (var dbContext = GetDbContext())
|
||||
{
|
||||
dbContext.Add(entity);
|
||||
|
||||
//CreateDone(entity, newDbObj);
|
||||
return dbContext.SaveChangesAsync();
|
||||
//CreateDone(entity, newDbObj);
|
||||
return dbContext.SaveChangesAsync();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -99,9 +116,12 @@ namespace Church.Net.DAL.EFCoreDBF
|
||||
//}
|
||||
this.ConvertUTCTime(entity);
|
||||
|
||||
dbContext.Update(entity);
|
||||
using (var dbContext = GetDbContext())
|
||||
{
|
||||
dbContext.Update(entity);
|
||||
|
||||
return dbContext.SaveChanges();
|
||||
return dbContext.SaveChanges();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -116,15 +136,21 @@ namespace Church.Net.DAL.EFCoreDBF
|
||||
|
||||
public virtual int UpdateRange(IEnumerable<T> entities)
|
||||
{
|
||||
dbContext.UpdateRange(entities);
|
||||
using (var dbContext = GetDbContext())
|
||||
{
|
||||
dbContext.UpdateRange(entities);
|
||||
|
||||
return dbContext.SaveChanges();
|
||||
return dbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
||||
public virtual int Delete(T obj)
|
||||
{
|
||||
dbContext.Remove(obj);
|
||||
return dbContext.SaveChanges();
|
||||
using (var dbContext = GetDbContext())
|
||||
{
|
||||
dbContext.Remove(obj);
|
||||
return dbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
||||
public virtual int Delete(IEnumerable<string> combinedKeyIds)
|
||||
@@ -136,11 +162,14 @@ namespace Church.Net.DAL.EFCoreDBF
|
||||
public int Delete(Func<T, bool> filter)
|
||||
{
|
||||
var list = GetDbSet().Where(filter).ToList();
|
||||
foreach (var item in list)
|
||||
using (var dbContext = GetDbContext())
|
||||
{
|
||||
dbContext.Remove(item);
|
||||
foreach (var item in list)
|
||||
{
|
||||
dbContext.Remove(item);
|
||||
}
|
||||
return dbContext.SaveChanges();
|
||||
}
|
||||
return dbContext.SaveChanges();
|
||||
}
|
||||
|
||||
public virtual bool CheckExist(T obj)
|
||||
@@ -189,13 +218,16 @@ namespace Church.Net.DAL.EFCoreDBF
|
||||
|
||||
private IQueryable<T> GetQuery(IEnumerable<string> Ids)
|
||||
{
|
||||
var query = GetDbSet().AsQueryable();
|
||||
|
||||
for (int i = 0; i < keyProps.Count; i++)
|
||||
using (var dbContext = GetDbContext())
|
||||
{
|
||||
query = query.Where(e => keyProps[i].GetValue(e).ToString() == Ids.ElementAt(i));
|
||||
var query = dbContext.Set<T>().AsQueryable();
|
||||
|
||||
for (int i = 0; i < keyProps.Count; i++)
|
||||
{
|
||||
query = query.Where(e => keyProps[i].GetValue(e).ToString() == Ids.ElementAt(i));
|
||||
}
|
||||
return query;
|
||||
}
|
||||
return query;
|
||||
}
|
||||
private void CheckCombinedKeyIsEmpty(T entity)
|
||||
{
|
||||
|
||||
@@ -12,28 +12,37 @@ namespace Church.Net.DAL.EFCoreDBF
|
||||
{
|
||||
public class CrudDALCBase<T> : ICrudDAL<T> where T : class, Church.Net.Entity.Interface.IEntity, new()
|
||||
{
|
||||
private readonly ChurchNetContext dbContext;
|
||||
private readonly DatabaseOptions databaseOptions;
|
||||
|
||||
public CrudDALCBase(ChurchNetContext dbContext)
|
||||
//private readonly ChurchNetContext dbContext;
|
||||
|
||||
public CrudDALCBase(DatabaseOptions databaseOptions)
|
||||
{
|
||||
this.dbContext = dbContext;
|
||||
this.databaseOptions = databaseOptions;
|
||||
//this.dbContext = databaseOptions.GetDbContext();
|
||||
}
|
||||
public DbSet<T> GetDbSet()
|
||||
public ChurchNetContext GetDbContext()
|
||||
{
|
||||
//var result = (DbSet<T>)typeof(ChurchNetContext).GetMethod("Set").MakeGenericMethod(typeof(T)).Invoke(dbContext, null);
|
||||
|
||||
return (DbSet<T>)dbContext.Set<T>();
|
||||
return databaseOptions.GetDbContext();//.Set<T>().AsNoTracking();
|
||||
//return result;
|
||||
}
|
||||
|
||||
public virtual T First(Func<T, bool> filter = null)
|
||||
{
|
||||
return GetDbSet().Where(filter ?? (s => true)).FirstOrDefault();
|
||||
using (var dbContext = GetDbContext())
|
||||
{
|
||||
return dbContext.Set<T>().Where(filter ?? (s => true)).FirstOrDefault();
|
||||
}
|
||||
}
|
||||
|
||||
public virtual T GetById(string Id)
|
||||
{
|
||||
return GetDbSet().FirstOrDefault(e => e.Id == Id);
|
||||
using (var dbContext = GetDbContext())
|
||||
{
|
||||
return dbContext.Set<T>().FirstOrDefault(e => e.Id == Id);
|
||||
}
|
||||
}
|
||||
|
||||
//public virtual T GetByRefndx(string refndx)
|
||||
@@ -43,41 +52,56 @@ namespace Church.Net.DAL.EFCoreDBF
|
||||
|
||||
public virtual IEnumerable<T> GetAll(Func<T, bool> filter = null)
|
||||
{
|
||||
//var dbObjs = GetDbSet().ToArray();
|
||||
using (var dbContext = GetDbContext())
|
||||
{
|
||||
return dbContext.Set<T>().Where(filter ?? (s => true)).ToList();
|
||||
}
|
||||
//var dbObjs = GetDbContext().ToArray();
|
||||
|
||||
//IEnumerable<T> list = GetDbSet().Where(filter ?? (s => true)).ToList();
|
||||
//IEnumerable<T> list = GetDbContext().Where(filter ?? (s => true)).ToList();
|
||||
|
||||
return GetDbSet().Where(filter ?? (s => true)).ToList();
|
||||
}
|
||||
|
||||
public virtual IEnumerable<T> GetAllById(IEnumerable<string> Ids)
|
||||
{
|
||||
var RowIds = Ids.Select(i => i.ToString());
|
||||
using (var dbContext = GetDbContext())
|
||||
{
|
||||
var RowIds = Ids.Select(i => i.ToString());
|
||||
|
||||
//return GetDbSet().Where(e => RowIds.Any(id => id == e.Id));
|
||||
//return GetDbContext().Where(e => RowIds.Any(id => id == e.Id));
|
||||
|
||||
//var list = new List<T>();
|
||||
var dbObjs = GetDbSet().Where(e => RowIds.Any(id => id == e.Id)).ToArray();
|
||||
//var list = new List<T>();
|
||||
|
||||
return dbContext.Set<T>().Where(e => RowIds.Any(id => id == e.Id)).ToArray();
|
||||
}
|
||||
}
|
||||
private bool needGenId(T entity)
|
||||
{
|
||||
|
||||
return string.IsNullOrWhiteSpace(entity.Id) || entity.Id.Length <= 3;
|
||||
|
||||
return dbObjs.ToList();
|
||||
}
|
||||
public virtual int Create(T entity)
|
||||
{
|
||||
if (string.IsNullOrEmpty(entity.Id))
|
||||
if (needGenId(entity))
|
||||
{
|
||||
entity.Id = StringHelper.Get33BaseGuid();
|
||||
}
|
||||
|
||||
this.ConvertUTCTime(entity);
|
||||
dbContext.Add(entity);
|
||||
|
||||
return dbContext.SaveChanges();
|
||||
using (var dbContext = GetDbContext())
|
||||
{
|
||||
dbContext.Add(entity);
|
||||
|
||||
return dbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
public virtual Task<int> CreateAsync(T entity)
|
||||
{
|
||||
int result = 0;
|
||||
this.ConvertUTCTime(entity);
|
||||
if (string.IsNullOrEmpty(entity.Id))
|
||||
if (needGenId(entity))
|
||||
{
|
||||
entity.Id = StringHelper.Get33BaseGuid();
|
||||
}
|
||||
@@ -88,10 +112,13 @@ namespace Church.Net.DAL.EFCoreDBF
|
||||
//newDbObj.RowId = entity.Id.ToString();
|
||||
//result = Add(newDbObj) ? 1 : 0;
|
||||
}
|
||||
dbContext.Add(entity);
|
||||
using (var dbContext = GetDbContext())
|
||||
{
|
||||
dbContext.Add(entity);
|
||||
|
||||
//CreateDone(entity, newDbObj);
|
||||
return dbContext.SaveChangesAsync();
|
||||
//CreateDone(entity, newDbObj);
|
||||
return dbContext.SaveChangesAsync();
|
||||
}
|
||||
}
|
||||
public virtual string CreateReturnId(T entity)
|
||||
{
|
||||
@@ -106,40 +133,45 @@ namespace Church.Net.DAL.EFCoreDBF
|
||||
};
|
||||
}
|
||||
|
||||
public int CreateOrUpdate(T entity, out string id)
|
||||
public int CreateOrUpdate(T entity)
|
||||
{
|
||||
id = null;
|
||||
this.ConvertUTCTime(entity);
|
||||
if (CheckExist(entity))
|
||||
|
||||
|
||||
using (var dbContext = GetDbContext())
|
||||
{
|
||||
dbContext.Update(entity);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (string.IsNullOrEmpty(entity.Id))
|
||||
if (CheckExist(entity))
|
||||
{
|
||||
entity.Id = StringHelper.Get33BaseGuid();
|
||||
dbContext.Update(entity);
|
||||
}
|
||||
id = entity.Id;
|
||||
dbContext.Add(entity);
|
||||
else
|
||||
{
|
||||
if (needGenId(entity))
|
||||
{
|
||||
entity.Id = StringHelper.Get33BaseGuid();
|
||||
}
|
||||
dbContext.Add(entity);
|
||||
}
|
||||
return dbContext.SaveChanges();
|
||||
}
|
||||
return dbContext.SaveChanges();
|
||||
|
||||
}
|
||||
|
||||
public virtual int Update(T entity)
|
||||
{
|
||||
|
||||
var dbObj = GetDbSet().FirstOrDefault(e => e.Id == entity.Id);
|
||||
if (dbObj == null)
|
||||
using (var dbContext = GetDbContext())
|
||||
{
|
||||
throw new ArgumentNullException("the Id is not exist.");
|
||||
//var dbObj = dbContext.Set<T>().Any(e => e.Id == entity.Id);
|
||||
if (!dbContext.Set<T>().Any(e => e.Id == entity.Id))
|
||||
{
|
||||
throw new ArgumentNullException("the Id is not exist.");
|
||||
}
|
||||
this.ConvertUTCTime(entity);
|
||||
|
||||
dbContext.Update(entity);
|
||||
|
||||
return dbContext.SaveChanges();
|
||||
}
|
||||
this.ConvertUTCTime(entity);
|
||||
|
||||
dbContext.Update(dbObj);
|
||||
|
||||
return dbContext.SaveChanges();
|
||||
|
||||
|
||||
}
|
||||
public virtual void CreateDone(T entity)
|
||||
@@ -157,31 +189,44 @@ namespace Church.Net.DAL.EFCoreDBF
|
||||
{
|
||||
this.ConvertUTCTime(entity);
|
||||
}
|
||||
dbContext.UpdateRange(entities);
|
||||
using (var dbContext = GetDbContext())
|
||||
{
|
||||
dbContext.UpdateRange(entities);
|
||||
|
||||
return dbContext.SaveChanges();
|
||||
return dbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
||||
public virtual int Delete(T obj)
|
||||
{
|
||||
dbContext.Remove(GetDbSet().FirstOrDefault(e => e.Id == obj.Id.ToString()));
|
||||
return dbContext.SaveChanges();
|
||||
using (var dbContext = GetDbContext())
|
||||
{
|
||||
dbContext.Remove(dbContext.Set<T>().FirstOrDefault(e => e.Id == obj.Id.ToString()));
|
||||
return dbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
||||
public int Delete(Func<T, bool> filter)
|
||||
{
|
||||
var list = GetDbSet().Where(filter).ToList();
|
||||
if (list.Count > 0)
|
||||
using (var dbContext = GetDbContext())
|
||||
{
|
||||
dbContext.RemoveRange(list);
|
||||
return dbContext.SaveChanges();
|
||||
|
||||
var list = dbContext.Set<T>().Where(filter).ToList();
|
||||
if (list.Count > 0)
|
||||
{
|
||||
dbContext.RemoveRange(list);
|
||||
return dbContext.SaveChanges();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public virtual bool CheckExist(T obj)
|
||||
{
|
||||
return GetDbSet().Any(e => e.Id == obj.Id);
|
||||
using (var dbContext = GetDbContext())
|
||||
{
|
||||
return dbContext.Set<T>().Any(e => e.Id == obj.Id);
|
||||
}
|
||||
}
|
||||
|
||||
private void ConvertUTCTime(T entity)
|
||||
@@ -193,12 +238,41 @@ namespace Church.Net.DAL.EFCoreDBF
|
||||
if (prop.PropertyType == typeof(DateTime))
|
||||
{
|
||||
//do stuff like prop.SetValue(t, DateTime.Now, null);
|
||||
DateTime utcTime = ((DateTime)prop.GetValue(entity)).ToUniversalTime();
|
||||
DateTime localTime = ((DateTime)prop.GetValue(entity));
|
||||
if (localTime.Kind != DateTimeKind.Utc)
|
||||
{
|
||||
//localTime= DateTime.SpecifyKind(localTime, DateTimeKind.Local);
|
||||
localTime = new DateTime(localTime.Year, localTime.Month, localTime.Day,
|
||||
localTime.Hour, localTime.Minute, localTime.Second, localTime.Millisecond);
|
||||
}
|
||||
DateTime utcTime = localTime.ToUniversalTime();
|
||||
prop.SetValue(entity, utcTime, null);
|
||||
|
||||
}
|
||||
else if (prop.PropertyType == typeof(DateTime?))
|
||||
{
|
||||
DateTime? localTime = ((DateTime?)prop.GetValue(entity));
|
||||
if (localTime.HasValue)
|
||||
{
|
||||
if (localTime.Value.Kind != DateTimeKind.Utc)
|
||||
{
|
||||
//localTime = DateTime.SpecifyKind(localTime.Value, DateTimeKind.Local);
|
||||
localTime = new DateTime(localTime.Value.Year, localTime.Value.Month, localTime.Value.Day,
|
||||
localTime.Value.Hour, localTime.Value.Minute, localTime.Value.Second,
|
||||
localTime.Value.Millisecond, DateTimeKind.Local);
|
||||
}
|
||||
|
||||
DateTime? utcTime = localTime.Value.ToUniversalTime();
|
||||
prop.SetValue(entity, utcTime, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public IQueryable<T> GetDbSet()
|
||||
{
|
||||
return databaseOptions.GetDbContext().Set<T>().AsNoTracking();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
using Church.Net.DAL.EF;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Church.Net.DAL.EFCoreDBF
|
||||
{
|
||||
public class DatabaseOptions
|
||||
{
|
||||
public string ConnectionString { get; set; }
|
||||
|
||||
public ChurchNetContext GetDbContext() => new ChurchNetContext(ConnectionString);
|
||||
}
|
||||
}
|
||||
@@ -9,19 +9,18 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace Church.Net.DAL.EFCoreDBF
|
||||
{
|
||||
public interface ICrudDAL<T> where T:class,IEntity
|
||||
public interface ICrudDAL<T> where T : class, IEntity
|
||||
{
|
||||
DbSet<T> GetDbSet();
|
||||
IQueryable<T> GetDbSet();
|
||||
T First(Func<T, bool> filter = null);
|
||||
|
||||
T GetById(string Id);
|
||||
IEnumerable<T> GetAll(Func<T, bool> filter = null);
|
||||
IEnumerable<T> GetAllById(IEnumerable<string> Ids);
|
||||
//IEnumerable<T> GetAllById(IEnumerable<string> Ids);
|
||||
int Create(T entity);
|
||||
Task<int> CreateAsync(T entity);
|
||||
string CreateReturnId(T entity);
|
||||
|
||||
int CreateOrUpdate(T entity, out string id);
|
||||
int CreateOrUpdate(T entity);
|
||||
int Update(T entity);
|
||||
void CreateDone(T entity);
|
||||
void UpdateDone(T entity);
|
||||
@@ -35,9 +34,9 @@ namespace Church.Net.DAL.EFCoreDBF
|
||||
}
|
||||
|
||||
|
||||
public interface ICombinedKeyCrudDAL<T> where T : class, ICombinedKeyEntity
|
||||
public interface ICombinedKeyCrudDAL<T> where T : class
|
||||
{
|
||||
DbSet<T> GetDbSet();
|
||||
IQueryable<T> GetDbSet();
|
||||
T First(Func<T, bool> filter = null);
|
||||
|
||||
T GetById(IEnumerable<string> combinedKeyIds);
|
||||
|
||||
+798
@@ -0,0 +1,798 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using Church.Net.DAL.EF;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace Church.Net.DAL.EFCoreDBF.Migrations
|
||||
{
|
||||
[DbContext(typeof(ChurchNetContext))]
|
||||
[Migration("20220914151710_AddTaskToHappinessWeek")]
|
||||
partial class AddTaskToHappinessWeek
|
||||
{
|
||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||
{
|
||||
#pragma warning disable 612, 618
|
||||
modelBuilder
|
||||
.HasAnnotation("ProductVersion", "6.0.8")
|
||||
.HasAnnotation("Relational:MaxIdentifierLength", 63);
|
||||
|
||||
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.AddressInfo", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Address")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("City")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("State")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Zip")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("AddressInfos");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.AutoReplyItem", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Command")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Content")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Description")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("AutoReplyItems");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.Career", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("character varying(50)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("Careers");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.CellGroupRoutineEvent", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Address")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<DateTime>("Time")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("CellGroupRoutineEvents");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.CellGroupRoutineEventAttendee", b =>
|
||||
{
|
||||
b.Property<string>("EventId")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(0);
|
||||
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(1);
|
||||
|
||||
b.Property<string>("Comment")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<bool>("JoinPotluck")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("PotluckItem")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("EventId", "Id");
|
||||
|
||||
b.ToTable("CellGroupRoutineEventAttendees");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.CellGroupRoutineEventPrayer", b =>
|
||||
{
|
||||
b.Property<string>("EventId")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(0);
|
||||
|
||||
b.Property<string>("MemberId")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(1);
|
||||
|
||||
b.Property<string>("Comment")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Prayer")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("EventId", "MemberId");
|
||||
|
||||
b.ToTable("CellGroupRoutineEventPrayers");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.FamilyMember", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Address")
|
||||
.HasMaxLength(500)
|
||||
.HasColumnType("character varying(500)");
|
||||
|
||||
b.Property<string>("AvatarImage")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<bool>("Baptized")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<DateTime?>("Birthday")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<string>("CareerId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Comment")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("ComunityAppId")
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("character varying(50)");
|
||||
|
||||
b.Property<DateTime?>("DateOfBaptized")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<DateTime?>("DateOfWalkIn")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<string>("Email")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("FirstName")
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("character varying(50)");
|
||||
|
||||
b.Property<int>("Gender")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<string>("LastName")
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("character varying(50)");
|
||||
|
||||
b.Property<bool>("Married")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<string>("Password")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int>("Role")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("CareerId");
|
||||
|
||||
b.ToTable("FamilyMembers");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.FamilyMemberOAuth", b =>
|
||||
{
|
||||
b.Property<string>("FamilyMemberId")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(0);
|
||||
|
||||
b.Property<string>("OAuthType")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(1);
|
||||
|
||||
b.Property<string>("OAuthAccessToken")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("FamilyMemberId", "OAuthType");
|
||||
|
||||
b.ToTable("FamilyMemberOAuths");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessBEST", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Email")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("GroupId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Phone")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("GroupId");
|
||||
|
||||
b.ToTable("HappinessBESTs");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessGroup", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Address")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<DateTime>("BeginTime")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<string>("CityAndZipCode")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("InvitationText")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("HappinessGroups");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessTask", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Content")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Tasker")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int>("Type")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<string>("WeekId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("WeekId");
|
||||
|
||||
b.ToTable("HappinessTask");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessWeek", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Address")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("CityAndZipCode")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Comment")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<DateTime>("Date")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<string>("GroupId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("InvitationText")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int>("SEQ")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("GroupId");
|
||||
|
||||
b.ToTable("HappinessWeeks");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.LogInfo", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("DetailMessage")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int>("Level")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<string>("Message")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Source")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("StackTrace")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<DateTime>("Time")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<int>("TrackNo")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("integer");
|
||||
|
||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("TrackNo"));
|
||||
|
||||
b.Property<string>("Url")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("UserId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("LogInfos");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.NewVisitor", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Address")
|
||||
.HasMaxLength(500)
|
||||
.HasColumnType("character varying(500)");
|
||||
|
||||
b.Property<DateTime?>("BirthDate")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<string>("ComunityAppId")
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("character varying(50)");
|
||||
|
||||
b.Property<string>("Email")
|
||||
.HasMaxLength(150)
|
||||
.HasColumnType("character varying(150)");
|
||||
|
||||
b.Property<string>("FirstName")
|
||||
.IsRequired()
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("character varying(50)");
|
||||
|
||||
b.Property<int>("Gender")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<string>("LastName")
|
||||
.IsRequired()
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("character varying(50)");
|
||||
|
||||
b.Property<string>("Note")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Phone")
|
||||
.IsRequired()
|
||||
.HasMaxLength(150)
|
||||
.HasColumnType("character varying(150)");
|
||||
|
||||
b.Property<int?>("ReligionId")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<DateTime>("VisitingDate")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("ReligionId");
|
||||
|
||||
b.ToTable("NewVisitors");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.PastoralDomain", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("CommunityAppId")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Description")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Image1")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Image2")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Image3")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Image4")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Image5")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("LeaderMemberId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("LogoImage")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("ServiceAddressId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("LeaderMemberId");
|
||||
|
||||
b.HasIndex("ServiceAddressId");
|
||||
|
||||
b.ToTable("PastoralDomains");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.PastoralDomainAutoReplys", b =>
|
||||
{
|
||||
b.Property<string>("PastoralDomainCommunityAppId")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(0);
|
||||
|
||||
b.Property<string>("AutoReplyItemId")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(1);
|
||||
|
||||
b.HasKey("PastoralDomainCommunityAppId", "AutoReplyItemId");
|
||||
|
||||
b.HasIndex("AutoReplyItemId");
|
||||
|
||||
b.ToTable("PastoralDomainAutoReplys");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.PastoralDomainMembers", b =>
|
||||
{
|
||||
b.Property<string>("PastoralDomainId")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(0);
|
||||
|
||||
b.Property<string>("FamilyMemberId")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(1);
|
||||
|
||||
b.HasKey("PastoralDomainId", "FamilyMemberId");
|
||||
|
||||
b.HasIndex("FamilyMemberId");
|
||||
|
||||
b.ToTable("PastoralDomainMembers");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.Religion", b =>
|
||||
{
|
||||
b.Property<int>("ReligionId")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("integer");
|
||||
|
||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("ReligionId"));
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("ReligionId");
|
||||
|
||||
b.ToTable("Religions");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.Vocabulary", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("integer");
|
||||
|
||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<string>("DefinitionCh")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("DefinitionEn")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int>("FlashCardTimes")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<string>("ImagesUrl")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<DateTime>("InsertDate")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<string>("NounPlural")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int>("PartOfSpeech")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<bool>("PracticeApply")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<DateTime>("PracticeDate")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<bool>("PracticeMemorized")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<bool>("PracticeReview")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<bool>("PracticeSelect")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<string>("PracticeSentence")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int>("PracticeStage")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<bool>("PracticeVisualize")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<string>("VerbParticiple")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("VerbPast")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Word")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("Vocabulary");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.WhoIsSpy", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("integer");
|
||||
|
||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<string>("Answer1Chs")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Answer1Cht")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Answer1En")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Answer2Chs")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Answer2Cht")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Answer2En")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("WhoIsSpy");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.CellGroupRoutineEventAttendee", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.CellGroupRoutineEvent", "CellGroupRoutineEvent")
|
||||
.WithMany("Attendees")
|
||||
.HasForeignKey("EventId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("CellGroupRoutineEvent");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.CellGroupRoutineEventPrayer", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.CellGroupRoutineEvent", "CellGroupRoutineEvent")
|
||||
.WithMany("Prayers")
|
||||
.HasForeignKey("EventId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("CellGroupRoutineEvent");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.FamilyMember", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.Career", "Career")
|
||||
.WithMany()
|
||||
.HasForeignKey("CareerId");
|
||||
|
||||
b.Navigation("Career");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.FamilyMemberOAuth", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.FamilyMember", null)
|
||||
.WithMany("OAuthInfos")
|
||||
.HasForeignKey("FamilyMemberId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessBEST", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.HappinessGroup", "HappinessGroup")
|
||||
.WithMany("BestList")
|
||||
.HasForeignKey("GroupId");
|
||||
|
||||
b.Navigation("HappinessGroup");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessTask", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.HappinessWeek", "HappinessWeek")
|
||||
.WithMany("Tasks")
|
||||
.HasForeignKey("WeekId");
|
||||
|
||||
b.Navigation("HappinessWeek");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessWeek", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.HappinessGroup", "HappinessGroup")
|
||||
.WithMany("Weeks")
|
||||
.HasForeignKey("GroupId");
|
||||
|
||||
b.Navigation("HappinessGroup");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.NewVisitor", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.Religion", "Religion")
|
||||
.WithMany()
|
||||
.HasForeignKey("ReligionId");
|
||||
|
||||
b.Navigation("Religion");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.PastoralDomain", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.FamilyMember", "Leader")
|
||||
.WithMany()
|
||||
.HasForeignKey("LeaderMemberId");
|
||||
|
||||
b.HasOne("Church.Net.Entity.AddressInfo", "ServiceAddress")
|
||||
.WithMany()
|
||||
.HasForeignKey("ServiceAddressId");
|
||||
|
||||
b.Navigation("Leader");
|
||||
|
||||
b.Navigation("ServiceAddress");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.PastoralDomainAutoReplys", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.AutoReplyItem", "FamilyMember")
|
||||
.WithMany("AutoReplyItemRelations")
|
||||
.HasForeignKey("AutoReplyItemId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Church.Net.Entity.PastoralDomain", "PastoralDomain")
|
||||
.WithMany("AutoReplyItemRelations")
|
||||
.HasForeignKey("PastoralDomainCommunityAppId")
|
||||
.HasPrincipalKey("CommunityAppId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("FamilyMember");
|
||||
|
||||
b.Navigation("PastoralDomain");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.PastoralDomainMembers", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.FamilyMember", "FamilyMember")
|
||||
.WithMany("PastoralDomains")
|
||||
.HasForeignKey("FamilyMemberId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Church.Net.Entity.PastoralDomain", "PastoralDomain")
|
||||
.WithMany("Members")
|
||||
.HasForeignKey("PastoralDomainId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("FamilyMember");
|
||||
|
||||
b.Navigation("PastoralDomain");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.AutoReplyItem", b =>
|
||||
{
|
||||
b.Navigation("AutoReplyItemRelations");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.CellGroupRoutineEvent", b =>
|
||||
{
|
||||
b.Navigation("Attendees");
|
||||
|
||||
b.Navigation("Prayers");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.FamilyMember", b =>
|
||||
{
|
||||
b.Navigation("OAuthInfos");
|
||||
|
||||
b.Navigation("PastoralDomains");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessGroup", b =>
|
||||
{
|
||||
b.Navigation("BestList");
|
||||
|
||||
b.Navigation("Weeks");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessWeek", b =>
|
||||
{
|
||||
b.Navigation("Tasks");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.PastoralDomain", b =>
|
||||
{
|
||||
b.Navigation("AutoReplyItemRelations");
|
||||
|
||||
b.Navigation("Members");
|
||||
});
|
||||
#pragma warning restore 612, 618
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace Church.Net.DAL.EFCoreDBF.Migrations
|
||||
{
|
||||
public partial class AddTaskToHappinessWeek : Migration
|
||||
{
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.AddColumn<string>(
|
||||
name: "Comment",
|
||||
table: "HappinessWeeks",
|
||||
type: "text",
|
||||
nullable: true);
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "HappinessTask",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<string>(type: "text", nullable: false),
|
||||
WeekId = table.Column<string>(type: "text", nullable: true),
|
||||
Type = table.Column<int>(type: "integer", nullable: false),
|
||||
Tasker = table.Column<string>(type: "text", nullable: true),
|
||||
Content = table.Column<string>(type: "text", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_HappinessTask", x => x.Id);
|
||||
table.ForeignKey(
|
||||
name: "FK_HappinessTask_HappinessWeeks_WeekId",
|
||||
column: x => x.WeekId,
|
||||
principalTable: "HappinessWeeks",
|
||||
principalColumn: "Id");
|
||||
});
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_HappinessTask_WeekId",
|
||||
table: "HappinessTask",
|
||||
column: "WeekId");
|
||||
}
|
||||
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropTable(
|
||||
name: "HappinessTask");
|
||||
|
||||
migrationBuilder.DropColumn(
|
||||
name: "Comment",
|
||||
table: "HappinessWeeks");
|
||||
}
|
||||
}
|
||||
}
|
||||
+823
@@ -0,0 +1,823 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using Church.Net.DAL.EF;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace Church.Net.DAL.EFCoreDBF.Migrations
|
||||
{
|
||||
[DbContext(typeof(ChurchNetContext))]
|
||||
[Migration("20220929210007_AddLienClient")]
|
||||
partial class AddLienClient
|
||||
{
|
||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||
{
|
||||
#pragma warning disable 612, 618
|
||||
modelBuilder
|
||||
.HasAnnotation("ProductVersion", "6.0.8")
|
||||
.HasAnnotation("Relational:MaxIdentifierLength", 63);
|
||||
|
||||
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.AddressInfo", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Address")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("City")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("State")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Zip")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("AddressInfos");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.AutoReplyItem", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Command")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Content")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Description")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("AutoReplyItems");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.Career", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("character varying(50)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("Careers");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.CellGroupRoutineEvent", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Address")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<DateTime>("Time")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("CellGroupRoutineEvents");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.CellGroupRoutineEventAttendee", b =>
|
||||
{
|
||||
b.Property<string>("EventId")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(0);
|
||||
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(1);
|
||||
|
||||
b.Property<string>("Comment")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<bool>("JoinPotluck")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("PotluckItem")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("EventId", "Id");
|
||||
|
||||
b.ToTable("CellGroupRoutineEventAttendees");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.CellGroupRoutineEventPrayer", b =>
|
||||
{
|
||||
b.Property<string>("EventId")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(0);
|
||||
|
||||
b.Property<string>("MemberId")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(1);
|
||||
|
||||
b.Property<string>("Comment")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Prayer")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("EventId", "MemberId");
|
||||
|
||||
b.ToTable("CellGroupRoutineEventPrayers");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.FamilyMember", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Address")
|
||||
.HasMaxLength(500)
|
||||
.HasColumnType("character varying(500)");
|
||||
|
||||
b.Property<string>("AvatarImage")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<bool>("Baptized")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<DateTime?>("Birthday")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<string>("CareerId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Comment")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("ComunityAppId")
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("character varying(50)");
|
||||
|
||||
b.Property<DateTime?>("DateOfBaptized")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<DateTime?>("DateOfWalkIn")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<string>("Email")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("FirstName")
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("character varying(50)");
|
||||
|
||||
b.Property<int>("Gender")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<string>("LastName")
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("character varying(50)");
|
||||
|
||||
b.Property<bool>("Married")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<string>("Password")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int>("Role")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("CareerId");
|
||||
|
||||
b.ToTable("FamilyMembers");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.FamilyMemberOAuth", b =>
|
||||
{
|
||||
b.Property<string>("FamilyMemberId")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(0);
|
||||
|
||||
b.Property<string>("OAuthType")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(1);
|
||||
|
||||
b.Property<string>("OAuthAccessToken")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("FamilyMemberId", "OAuthType");
|
||||
|
||||
b.ToTable("FamilyMemberOAuths");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessBEST", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Email")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("GroupId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Phone")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("GroupId");
|
||||
|
||||
b.ToTable("HappinessBESTs");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessGroup", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Address")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<DateTime>("BeginTime")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<string>("CityAndZipCode")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("CommunityAppId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("InvitationText")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("HappinessGroups");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessTask", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Content")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Tasker")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int>("Type")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<string>("WeekId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("WeekId");
|
||||
|
||||
b.ToTable("HappinessTask");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessWeek", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Address")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("CityAndZipCode")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Comment")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<DateTime>("Date")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<string>("GroupId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("InvitationText")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int>("SEQ")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("GroupId");
|
||||
|
||||
b.ToTable("HappinessWeeks");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.LogInfo", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("DetailMessage")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int>("Level")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<string>("Message")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Source")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("StackTrace")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<DateTime>("Time")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<int>("TrackNo")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("integer");
|
||||
|
||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("TrackNo"));
|
||||
|
||||
b.Property<string>("Url")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("UserId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("LogInfos");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.Messenger.LineMessageClient", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("ClientId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<bool>("IsGroup")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<bool>("IsManager")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("LineMessageClients");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.NewVisitor", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Address")
|
||||
.HasMaxLength(500)
|
||||
.HasColumnType("character varying(500)");
|
||||
|
||||
b.Property<DateTime?>("BirthDate")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<string>("ComunityAppId")
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("character varying(50)");
|
||||
|
||||
b.Property<string>("Email")
|
||||
.HasMaxLength(150)
|
||||
.HasColumnType("character varying(150)");
|
||||
|
||||
b.Property<string>("FirstName")
|
||||
.IsRequired()
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("character varying(50)");
|
||||
|
||||
b.Property<int>("Gender")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<string>("LastName")
|
||||
.IsRequired()
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("character varying(50)");
|
||||
|
||||
b.Property<string>("Note")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Phone")
|
||||
.IsRequired()
|
||||
.HasMaxLength(150)
|
||||
.HasColumnType("character varying(150)");
|
||||
|
||||
b.Property<int?>("ReligionId")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<DateTime>("VisitingDate")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("ReligionId");
|
||||
|
||||
b.ToTable("NewVisitors");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.PastoralDomain", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("CommunityAppId")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Description")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Image1")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Image2")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Image3")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Image4")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Image5")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("LeaderMemberId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("LogoImage")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("ServiceAddressId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("LeaderMemberId");
|
||||
|
||||
b.HasIndex("ServiceAddressId");
|
||||
|
||||
b.ToTable("PastoralDomains");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.PastoralDomainAutoReplys", b =>
|
||||
{
|
||||
b.Property<string>("PastoralDomainCommunityAppId")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(0);
|
||||
|
||||
b.Property<string>("AutoReplyItemId")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(1);
|
||||
|
||||
b.HasKey("PastoralDomainCommunityAppId", "AutoReplyItemId");
|
||||
|
||||
b.HasIndex("AutoReplyItemId");
|
||||
|
||||
b.ToTable("PastoralDomainAutoReplys");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.PastoralDomainMembers", b =>
|
||||
{
|
||||
b.Property<string>("PastoralDomainId")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(0);
|
||||
|
||||
b.Property<string>("FamilyMemberId")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(1);
|
||||
|
||||
b.HasKey("PastoralDomainId", "FamilyMemberId");
|
||||
|
||||
b.HasIndex("FamilyMemberId");
|
||||
|
||||
b.ToTable("PastoralDomainMembers");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.Religion", b =>
|
||||
{
|
||||
b.Property<int>("ReligionId")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("integer");
|
||||
|
||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("ReligionId"));
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("ReligionId");
|
||||
|
||||
b.ToTable("Religions");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.Vocabulary", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("integer");
|
||||
|
||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<string>("DefinitionCh")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("DefinitionEn")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int>("FlashCardTimes")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<string>("ImagesUrl")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<DateTime>("InsertDate")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<string>("NounPlural")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int>("PartOfSpeech")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<bool>("PracticeApply")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<DateTime>("PracticeDate")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<bool>("PracticeMemorized")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<bool>("PracticeReview")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<bool>("PracticeSelect")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<string>("PracticeSentence")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int>("PracticeStage")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<bool>("PracticeVisualize")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<string>("VerbParticiple")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("VerbPast")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Word")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("Vocabulary");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.WhoIsSpy", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("integer");
|
||||
|
||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<string>("Answer1Chs")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Answer1Cht")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Answer1En")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Answer2Chs")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Answer2Cht")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Answer2En")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("WhoIsSpy");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.CellGroupRoutineEventAttendee", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.CellGroupRoutineEvent", "CellGroupRoutineEvent")
|
||||
.WithMany("Attendees")
|
||||
.HasForeignKey("EventId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("CellGroupRoutineEvent");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.CellGroupRoutineEventPrayer", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.CellGroupRoutineEvent", "CellGroupRoutineEvent")
|
||||
.WithMany("Prayers")
|
||||
.HasForeignKey("EventId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("CellGroupRoutineEvent");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.FamilyMember", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.Career", "Career")
|
||||
.WithMany()
|
||||
.HasForeignKey("CareerId");
|
||||
|
||||
b.Navigation("Career");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.FamilyMemberOAuth", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.FamilyMember", null)
|
||||
.WithMany("OAuthInfos")
|
||||
.HasForeignKey("FamilyMemberId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessBEST", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.HappinessGroup", "HappinessGroup")
|
||||
.WithMany("BestList")
|
||||
.HasForeignKey("GroupId");
|
||||
|
||||
b.Navigation("HappinessGroup");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessTask", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.HappinessWeek", "HappinessWeek")
|
||||
.WithMany("Tasks")
|
||||
.HasForeignKey("WeekId");
|
||||
|
||||
b.Navigation("HappinessWeek");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessWeek", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.HappinessGroup", "HappinessGroup")
|
||||
.WithMany("Weeks")
|
||||
.HasForeignKey("GroupId");
|
||||
|
||||
b.Navigation("HappinessGroup");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.NewVisitor", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.Religion", "Religion")
|
||||
.WithMany()
|
||||
.HasForeignKey("ReligionId");
|
||||
|
||||
b.Navigation("Religion");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.PastoralDomain", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.FamilyMember", "Leader")
|
||||
.WithMany()
|
||||
.HasForeignKey("LeaderMemberId");
|
||||
|
||||
b.HasOne("Church.Net.Entity.AddressInfo", "ServiceAddress")
|
||||
.WithMany()
|
||||
.HasForeignKey("ServiceAddressId");
|
||||
|
||||
b.Navigation("Leader");
|
||||
|
||||
b.Navigation("ServiceAddress");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.PastoralDomainAutoReplys", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.AutoReplyItem", "FamilyMember")
|
||||
.WithMany("AutoReplyItemRelations")
|
||||
.HasForeignKey("AutoReplyItemId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Church.Net.Entity.PastoralDomain", "PastoralDomain")
|
||||
.WithMany("AutoReplyItemRelations")
|
||||
.HasForeignKey("PastoralDomainCommunityAppId")
|
||||
.HasPrincipalKey("CommunityAppId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("FamilyMember");
|
||||
|
||||
b.Navigation("PastoralDomain");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.PastoralDomainMembers", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.FamilyMember", "FamilyMember")
|
||||
.WithMany("PastoralDomains")
|
||||
.HasForeignKey("FamilyMemberId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Church.Net.Entity.PastoralDomain", "PastoralDomain")
|
||||
.WithMany("Members")
|
||||
.HasForeignKey("PastoralDomainId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("FamilyMember");
|
||||
|
||||
b.Navigation("PastoralDomain");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.AutoReplyItem", b =>
|
||||
{
|
||||
b.Navigation("AutoReplyItemRelations");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.CellGroupRoutineEvent", b =>
|
||||
{
|
||||
b.Navigation("Attendees");
|
||||
|
||||
b.Navigation("Prayers");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.FamilyMember", b =>
|
||||
{
|
||||
b.Navigation("OAuthInfos");
|
||||
|
||||
b.Navigation("PastoralDomains");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessGroup", b =>
|
||||
{
|
||||
b.Navigation("BestList");
|
||||
|
||||
b.Navigation("Weeks");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessWeek", b =>
|
||||
{
|
||||
b.Navigation("Tasks");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.PastoralDomain", b =>
|
||||
{
|
||||
b.Navigation("AutoReplyItemRelations");
|
||||
|
||||
b.Navigation("Members");
|
||||
});
|
||||
#pragma warning restore 612, 618
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace Church.Net.DAL.EFCoreDBF.Migrations
|
||||
{
|
||||
public partial class AddLienClient : Migration
|
||||
{
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.AddColumn<string>(
|
||||
name: "CommunityAppId",
|
||||
table: "HappinessGroups",
|
||||
type: "text",
|
||||
nullable: true);
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "LineMessageClients",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<string>(type: "text", nullable: false),
|
||||
ClientId = table.Column<string>(type: "text", nullable: true),
|
||||
IsGroup = table.Column<bool>(type: "boolean", nullable: false),
|
||||
IsManager = table.Column<bool>(type: "boolean", nullable: false),
|
||||
Name = table.Column<string>(type: "text", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_LineMessageClients", x => x.Id);
|
||||
});
|
||||
}
|
||||
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropTable(
|
||||
name: "LineMessageClients");
|
||||
|
||||
migrationBuilder.DropColumn(
|
||||
name: "CommunityAppId",
|
||||
table: "HappinessGroups");
|
||||
}
|
||||
}
|
||||
}
|
||||
+845
@@ -0,0 +1,845 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using Church.Net.DAL.EF;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace Church.Net.DAL.EFCoreDBF.Migrations
|
||||
{
|
||||
[DbContext(typeof(ChurchNetContext))]
|
||||
[Migration("20220930060508_LineMessageAccount")]
|
||||
partial class LineMessageAccount
|
||||
{
|
||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||
{
|
||||
#pragma warning disable 612, 618
|
||||
modelBuilder
|
||||
.HasAnnotation("ProductVersion", "6.0.8")
|
||||
.HasAnnotation("Relational:MaxIdentifierLength", 63);
|
||||
|
||||
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.AddressInfo", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Address")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("City")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("State")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Zip")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("AddressInfos");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.AutoReplyItem", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Command")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Content")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Description")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("AutoReplyItems");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.Career", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("character varying(50)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("Careers");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.CellGroupRoutineEvent", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Address")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<DateTime>("Time")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("CellGroupRoutineEvents");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.CellGroupRoutineEventAttendee", b =>
|
||||
{
|
||||
b.Property<string>("EventId")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(0);
|
||||
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(1);
|
||||
|
||||
b.Property<string>("Comment")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<bool>("JoinPotluck")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("PotluckItem")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("EventId", "Id");
|
||||
|
||||
b.ToTable("CellGroupRoutineEventAttendees");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.CellGroupRoutineEventPrayer", b =>
|
||||
{
|
||||
b.Property<string>("EventId")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(0);
|
||||
|
||||
b.Property<string>("MemberId")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(1);
|
||||
|
||||
b.Property<string>("Comment")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Prayer")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("EventId", "MemberId");
|
||||
|
||||
b.ToTable("CellGroupRoutineEventPrayers");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.FamilyMember", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Address")
|
||||
.HasMaxLength(500)
|
||||
.HasColumnType("character varying(500)");
|
||||
|
||||
b.Property<string>("AvatarImage")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<bool>("Baptized")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<DateTime?>("Birthday")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<string>("CareerId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Comment")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("ComunityAppId")
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("character varying(50)");
|
||||
|
||||
b.Property<DateTime?>("DateOfBaptized")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<DateTime?>("DateOfWalkIn")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<string>("Email")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("FirstName")
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("character varying(50)");
|
||||
|
||||
b.Property<int>("Gender")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<string>("LastName")
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("character varying(50)");
|
||||
|
||||
b.Property<bool>("Married")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<string>("Password")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int>("Role")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("CareerId");
|
||||
|
||||
b.ToTable("FamilyMembers");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.FamilyMemberOAuth", b =>
|
||||
{
|
||||
b.Property<string>("FamilyMemberId")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(0);
|
||||
|
||||
b.Property<string>("OAuthType")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(1);
|
||||
|
||||
b.Property<string>("OAuthAccessToken")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("FamilyMemberId", "OAuthType");
|
||||
|
||||
b.ToTable("FamilyMemberOAuths");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessBEST", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Email")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("GroupId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Phone")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("GroupId");
|
||||
|
||||
b.ToTable("HappinessBESTs");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessGroup", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Address")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<DateTime>("BeginTime")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<string>("CityAndZipCode")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("CommunityAppId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("InvitationText")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("HappinessGroups");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessTask", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Content")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Tasker")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int>("Type")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<string>("WeekId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("WeekId");
|
||||
|
||||
b.ToTable("HappinessTask");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessWeek", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Address")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("CityAndZipCode")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Comment")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<DateTime>("Date")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<string>("GroupId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("InvitationText")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int>("SEQ")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("GroupId");
|
||||
|
||||
b.ToTable("HappinessWeeks");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.LineMessagingAccount", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("ChatToken")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int>("Seq")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<int>("TotalUsage")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("LineMessagingAccounts");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.LogInfo", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("DetailMessage")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int>("Level")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<string>("Message")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Source")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("StackTrace")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<DateTime>("Time")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<int>("TrackNo")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("integer");
|
||||
|
||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("TrackNo"));
|
||||
|
||||
b.Property<string>("Url")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("UserId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("LogInfos");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.Messenger.LineMessageClient", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("ClientId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<bool>("IsGroup")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<bool>("IsManager")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("LineMessageClients");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.NewVisitor", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Address")
|
||||
.HasMaxLength(500)
|
||||
.HasColumnType("character varying(500)");
|
||||
|
||||
b.Property<DateTime?>("BirthDate")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<string>("ComunityAppId")
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("character varying(50)");
|
||||
|
||||
b.Property<string>("Email")
|
||||
.HasMaxLength(150)
|
||||
.HasColumnType("character varying(150)");
|
||||
|
||||
b.Property<string>("FirstName")
|
||||
.IsRequired()
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("character varying(50)");
|
||||
|
||||
b.Property<int>("Gender")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<string>("LastName")
|
||||
.IsRequired()
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("character varying(50)");
|
||||
|
||||
b.Property<string>("Note")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Phone")
|
||||
.IsRequired()
|
||||
.HasMaxLength(150)
|
||||
.HasColumnType("character varying(150)");
|
||||
|
||||
b.Property<int?>("ReligionId")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<DateTime>("VisitingDate")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("ReligionId");
|
||||
|
||||
b.ToTable("NewVisitors");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.PastoralDomain", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("CommunityAppId")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Description")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Image1")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Image2")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Image3")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Image4")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Image5")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("LeaderMemberId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("LogoImage")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("ServiceAddressId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("LeaderMemberId");
|
||||
|
||||
b.HasIndex("ServiceAddressId");
|
||||
|
||||
b.ToTable("PastoralDomains");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.PastoralDomainAutoReplys", b =>
|
||||
{
|
||||
b.Property<string>("PastoralDomainCommunityAppId")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(0);
|
||||
|
||||
b.Property<string>("AutoReplyItemId")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(1);
|
||||
|
||||
b.HasKey("PastoralDomainCommunityAppId", "AutoReplyItemId");
|
||||
|
||||
b.HasIndex("AutoReplyItemId");
|
||||
|
||||
b.ToTable("PastoralDomainAutoReplys");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.PastoralDomainMembers", b =>
|
||||
{
|
||||
b.Property<string>("PastoralDomainId")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(0);
|
||||
|
||||
b.Property<string>("FamilyMemberId")
|
||||
.HasColumnType("text")
|
||||
.HasColumnOrder(1);
|
||||
|
||||
b.HasKey("PastoralDomainId", "FamilyMemberId");
|
||||
|
||||
b.HasIndex("FamilyMemberId");
|
||||
|
||||
b.ToTable("PastoralDomainMembers");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.Religion", b =>
|
||||
{
|
||||
b.Property<int>("ReligionId")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("integer");
|
||||
|
||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("ReligionId"));
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("ReligionId");
|
||||
|
||||
b.ToTable("Religions");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.Vocabulary", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("integer");
|
||||
|
||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<string>("DefinitionCh")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("DefinitionEn")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int>("FlashCardTimes")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<string>("ImagesUrl")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<DateTime>("InsertDate")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<string>("NounPlural")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int>("PartOfSpeech")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<bool>("PracticeApply")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<DateTime>("PracticeDate")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<bool>("PracticeMemorized")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<bool>("PracticeReview")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<bool>("PracticeSelect")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<string>("PracticeSentence")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int>("PracticeStage")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<bool>("PracticeVisualize")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<string>("VerbParticiple")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("VerbPast")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Word")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("Vocabulary");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.WhoIsSpy", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("integer");
|
||||
|
||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<string>("Answer1Chs")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Answer1Cht")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Answer1En")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Answer2Chs")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Answer2Cht")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Answer2En")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("WhoIsSpy");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.CellGroupRoutineEventAttendee", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.CellGroupRoutineEvent", "CellGroupRoutineEvent")
|
||||
.WithMany("Attendees")
|
||||
.HasForeignKey("EventId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("CellGroupRoutineEvent");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.CellGroupRoutineEventPrayer", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.CellGroupRoutineEvent", "CellGroupRoutineEvent")
|
||||
.WithMany("Prayers")
|
||||
.HasForeignKey("EventId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("CellGroupRoutineEvent");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.FamilyMember", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.Career", "Career")
|
||||
.WithMany()
|
||||
.HasForeignKey("CareerId");
|
||||
|
||||
b.Navigation("Career");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.FamilyMemberOAuth", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.FamilyMember", null)
|
||||
.WithMany("OAuthInfos")
|
||||
.HasForeignKey("FamilyMemberId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessBEST", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.HappinessGroup", "HappinessGroup")
|
||||
.WithMany("BestList")
|
||||
.HasForeignKey("GroupId");
|
||||
|
||||
b.Navigation("HappinessGroup");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessTask", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.HappinessWeek", "HappinessWeek")
|
||||
.WithMany("Tasks")
|
||||
.HasForeignKey("WeekId");
|
||||
|
||||
b.Navigation("HappinessWeek");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessWeek", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.HappinessGroup", "HappinessGroup")
|
||||
.WithMany("Weeks")
|
||||
.HasForeignKey("GroupId");
|
||||
|
||||
b.Navigation("HappinessGroup");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.NewVisitor", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.Religion", "Religion")
|
||||
.WithMany()
|
||||
.HasForeignKey("ReligionId");
|
||||
|
||||
b.Navigation("Religion");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.PastoralDomain", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.FamilyMember", "Leader")
|
||||
.WithMany()
|
||||
.HasForeignKey("LeaderMemberId");
|
||||
|
||||
b.HasOne("Church.Net.Entity.AddressInfo", "ServiceAddress")
|
||||
.WithMany()
|
||||
.HasForeignKey("ServiceAddressId");
|
||||
|
||||
b.Navigation("Leader");
|
||||
|
||||
b.Navigation("ServiceAddress");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.PastoralDomainAutoReplys", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.AutoReplyItem", "FamilyMember")
|
||||
.WithMany("AutoReplyItemRelations")
|
||||
.HasForeignKey("AutoReplyItemId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Church.Net.Entity.PastoralDomain", "PastoralDomain")
|
||||
.WithMany("AutoReplyItemRelations")
|
||||
.HasForeignKey("PastoralDomainCommunityAppId")
|
||||
.HasPrincipalKey("CommunityAppId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("FamilyMember");
|
||||
|
||||
b.Navigation("PastoralDomain");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.PastoralDomainMembers", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.FamilyMember", "FamilyMember")
|
||||
.WithMany("PastoralDomains")
|
||||
.HasForeignKey("FamilyMemberId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Church.Net.Entity.PastoralDomain", "PastoralDomain")
|
||||
.WithMany("Members")
|
||||
.HasForeignKey("PastoralDomainId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("FamilyMember");
|
||||
|
||||
b.Navigation("PastoralDomain");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.AutoReplyItem", b =>
|
||||
{
|
||||
b.Navigation("AutoReplyItemRelations");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.CellGroupRoutineEvent", b =>
|
||||
{
|
||||
b.Navigation("Attendees");
|
||||
|
||||
b.Navigation("Prayers");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.FamilyMember", b =>
|
||||
{
|
||||
b.Navigation("OAuthInfos");
|
||||
|
||||
b.Navigation("PastoralDomains");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessGroup", b =>
|
||||
{
|
||||
b.Navigation("BestList");
|
||||
|
||||
b.Navigation("Weeks");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessWeek", b =>
|
||||
{
|
||||
b.Navigation("Tasks");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.PastoralDomain", b =>
|
||||
{
|
||||
b.Navigation("AutoReplyItemRelations");
|
||||
|
||||
b.Navigation("Members");
|
||||
});
|
||||
#pragma warning restore 612, 618
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace Church.Net.DAL.EFCoreDBF.Migrations
|
||||
{
|
||||
public partial class LineMessageAccount : Migration
|
||||
{
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.CreateTable(
|
||||
name: "LineMessagingAccounts",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<string>(type: "text", nullable: false),
|
||||
Name = table.Column<string>(type: "text", nullable: true),
|
||||
ChatToken = table.Column<string>(type: "text", nullable: true),
|
||||
TotalUsage = table.Column<int>(type: "integer", nullable: false),
|
||||
Seq = table.Column<int>(type: "integer", nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_LineMessagingAccounts", x => x.Id);
|
||||
});
|
||||
}
|
||||
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropTable(
|
||||
name: "LineMessagingAccounts");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -262,6 +262,9 @@ namespace Church.Net.DAL.EFCoreDBF.Migrations
|
||||
b.Property<string>("CityAndZipCode")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("CommunityAppId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("InvitationText")
|
||||
.HasColumnType("text");
|
||||
|
||||
@@ -273,6 +276,30 @@ namespace Church.Net.DAL.EFCoreDBF.Migrations
|
||||
b.ToTable("HappinessGroups");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessTask", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Content")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Tasker")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int>("Type")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<string>("WeekId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("WeekId");
|
||||
|
||||
b.ToTable("HappinessTask");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessWeek", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
@@ -284,6 +311,9 @@ namespace Church.Net.DAL.EFCoreDBF.Migrations
|
||||
b.Property<string>("CityAndZipCode")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Comment")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<DateTime>("Date")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
@@ -303,6 +333,28 @@ namespace Church.Net.DAL.EFCoreDBF.Migrations
|
||||
b.ToTable("HappinessWeeks");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.LineMessagingAccount", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("ChatToken")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int>("Seq")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<int>("TotalUsage")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("LineMessagingAccounts");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.LogInfo", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
@@ -343,6 +395,28 @@ namespace Church.Net.DAL.EFCoreDBF.Migrations
|
||||
b.ToTable("LogInfos");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.Messenger.LineMessageClient", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("ClientId")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<bool>("IsGroup")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<bool>("IsManager")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("LineMessageClients");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.NewVisitor", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
@@ -645,6 +719,15 @@ namespace Church.Net.DAL.EFCoreDBF.Migrations
|
||||
b.Navigation("HappinessGroup");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessTask", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.HappinessWeek", "HappinessWeek")
|
||||
.WithMany("Tasks")
|
||||
.HasForeignKey("WeekId");
|
||||
|
||||
b.Navigation("HappinessWeek");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessWeek", b =>
|
||||
{
|
||||
b.HasOne("Church.Net.Entity.HappinessGroup", "HappinessGroup")
|
||||
@@ -743,6 +826,11 @@ namespace Church.Net.DAL.EFCoreDBF.Migrations
|
||||
b.Navigation("Weeks");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.HappinessWeek", b =>
|
||||
{
|
||||
b.Navigation("Tasks");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Church.Net.Entity.PastoralDomain", b =>
|
||||
{
|
||||
b.Navigation("AutoReplyItemRelations");
|
||||
|
||||
Reference in New Issue
Block a user