求Pomelo.EntityFrameworkCore.MyCat改写源码,使.net core EF可以连mycat
我已经将官方源码源码整在DEMO中,控制台的.net core EF可以连接到mycat集群进行增删改查,同样代码,写到WEB上面就不行
下面是控制台的源码:
using Microsoft.EntityFrameworkCore;
using System;
using System.Linq;
namespace DemoMyCat
{
public class Blogs
{
public long Id { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public DateTime Time { get; set; }
}
public class SampleContext : DbContext
{
public DbSet<Blogs> Blogs { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
base.OnConfiguring(optionsBuilder);
optionsBuilder.UseMyCat("server=192.168.1.49;port=8066;uid=admin;pwd=k_#LoadjNe990pQ23;database=TESTSCHEMA")
.UseDataNode("192.168.1.49", "blogs", "admin", "k_#LoadjNe990pQ23")
.UseDataNode("192.168.1.50", "blogs", "admin", "k_#LoadjNe990pQ23")
.UseDataNode("192.168.1.51", "blogs", "admin", "k_#LoadjNe990pQ23");
}
}
class Program
{
static void Main(string[] args)
{
//add();
//Console.WriteLine(del(975213589398949888));
Update(976271322097258496);
Console.WriteLine("操作成功!");
//Console.WriteLine(Query(976271322579603456));
Console.Read();
}
/// <summary>
/// 添加数据
/// </summary>
private static void add()
{
var DB = new SampleContext();
DB.Database.EnsureCreated();
for (var i = 0; i < 50; i++)
{
DB.Blogs.Add(new Blogs { Title = "Hello", Time = DateTime.Now, Content = "MyCat" });
}
DB.SaveChanges();
}
/// <summary>
/// 删除数据
/// </summary>
private static string del(long id)
{
using (var DB = new SampleContext())
{
DB.Database.EnsureCreated();
var Blogs = new Blogs { Id = id };
DB.Blogs.Remove(Blogs);
return DB.SaveChanges().ToString();
}
}
/// <summary>
/// 修改数据
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
private static void Update(long id)
{
using (var DB = new SampleContext())
{
DB.Database.EnsureCreated();
var Blogs = new Blogs {Id=id, Title = "标题51", Time = DateTime.Now, Content = "baee" };
DB.Blogs.Update(Blogs);
DB.SaveChanges().ToString();
}
}
/// <summary>
/// 查询数据
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
private static string Query(long id)
{
using (var DB = new SampleContext())
{
var blog = DB.Blogs
.Single(u => u.Id == id);
return blog.Title.ToString();
}
}
}
}