using System.Data.Entity;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
public static void Main()
using (var ctx = new SchoolContext())
SmsMessageModels s1 = new SmsMessageModels { Name = "s1"};
SmsMessageModels s2 = new SmsMessageModels { Name = "s2"};
ctx.SmsMessageModels.AddRange(new List<SmsMessageModels> { s1,s2});
WeChatTemplateSettings w1 = new WeChatTemplateSettings { Name = "w1"};
WeChatTemplateSettings w2 = new WeChatTemplateSettings { Name = "w2"};
ctx.WeChatTemplateSettings.AddRange(new List<WeChatTemplateSettings> { w1,w2});
MessagePushSettings m1 = new MessagePushSettings { Name = "m1"};
MessagePushSettings m2 = new MessagePushSettings { Name = "m2"};
ctx.MessagePushSettings.AddRange(new List<MessagePushSettings> { m1,m2});
m2.WeChatTemplateSetting = w1;
JsonSerializerSettings setting = new JsonSerializerSettings()
ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
Formatting = Formatting.None
Console.WriteLine("消息推送");
foreach(MessagePushSettings i in ctx.MessagePushSettings){
Console.WriteLine(JsonConvert.SerializeObject(i,setting));
Console.WriteLine("短信模板");
foreach(SmsMessageModels i in ctx.SmsMessageModels){
Console.WriteLine(JsonConvert.SerializeObject(i,setting));
Console.WriteLine("微信模板");
foreach(WeChatTemplateSettings i in ctx.WeChatTemplateSettings){
Console.WriteLine(JsonConvert.SerializeObject(i,setting));
public class SchoolContext: DbContext
public SchoolContext() : base(FiddleHelper.GetConnectionStringSqlServer())
public DbSet<MessagePushSettings> MessagePushSettings { get; set; }
public DbSet<SmsMessageModels> SmsMessageModels { get; set; }
public DbSet<WeChatTemplateSettings> WeChatTemplateSettings { get; set; }
public class MessagePushSettings
public int Id { get; set; }
public string Name { get; set; }
[ForeignKey("SmsMessageModel")]
public int SmsMessageModelId { get; set; }
[ForeignKey("WeChatTemplateSetting")]
public int WeChatTemplateSettingId { get; set; }
[InverseProperty("MessagePushSettings")]
public SmsMessageModels SmsMessageModel { get; set; }
[InverseProperty("MessagePushSettings")]
public WeChatTemplateSettings WeChatTemplateSetting { get; set; }
public class SmsMessageModels
public int Id { get; set; }
public string Name { get; set; }
[InverseProperty("SmsMessageModel")]
public ICollection<MessagePushSettings> MessagePushSettings { get; set; }
public class WeChatTemplateSettings
public int Id { get; set; }
public string Name { get; set; }
[InverseProperty("WeChatTemplateSetting")]
public ICollection<MessagePushSettings> MessagePushSettings { get; set; }