- 修复 FreeSql.DbContext/FreeSql.Repository 当主键为 Guid? 可空类型时,发生参数错误;#105 #106

> System.ArgumentException:“Expression of type 'System.Guid' cannot be used for assignment to type 'System.Nullable`1[System.Guid]'”
This commit is contained in:
28810
2019-10-08 15:43:34 +08:00
parent fa48170041
commit cf0dfae545
2 changed files with 65 additions and 31 deletions

View File

@ -403,10 +403,56 @@ namespace FreeSql.Tests
[Navigate("AuthorId")]
public List<Post> Post { get; set; }
}
public class TestGuidId
{
public Guid? Id { get; set; }
public string xxx { get; set; }
}
[Fact]
public void Test1()
{
g.sqlite.Insert(new TestGuidId { xxx = "111" }).ExecuteAffrows();
g.sqlite.Insert(new TestGuidId { xxx = "222" }).ExecuteAffrows();
var gkkdk1 = g.sqlite.Select<TestGuidId>().Where(a => true).ToList();
using (var testguididdb = g.sqlite.CreateDbContext())
{
var gkkdk11 = testguididdb.Set<TestGuidId>().Select.Where(a => true).ToList();
}
g.oracle.Insert(new TestGuidId { xxx = "111" }).ExecuteAffrows();
g.oracle.Insert(new TestGuidId { xxx = "222" }).ExecuteAffrows();
var gkkdk2 = g.oracle.Select<TestGuidId>().Where(a => true).ToList();
using (var testguididdb = g.sqlite.CreateDbContext())
{
var gkkdk22 = testguididdb.Set<TestGuidId>().Select.Where(a => true).ToList();
}
g.pgsql.Insert(new TestGuidId { xxx = "111" }).ExecuteAffrows();
g.pgsql.Insert(new TestGuidId { xxx = "222" }).ExecuteAffrows();
var gkkdk3 = g.pgsql.Select<TestGuidId>().Where(a => true).ToList();
using (var testguididdb = g.sqlite.CreateDbContext())
{
var gkkdk22 = testguididdb.Set<TestGuidId>().Select.Where(a => true).ToList();
}
g.mysql.Insert(new TestGuidId { xxx = "111" }).ExecuteAffrows();
g.mysql.Insert(new TestGuidId { xxx = "222" }).ExecuteAffrows();
var gkkdk4 = g.mysql.Select<TestGuidId>().Where(a => true).ToList();
using (var testguididdb = g.sqlite.CreateDbContext())
{
var gkkdk22 = testguididdb.Set<TestGuidId>().Select.Where(a => true).ToList();
}
g.sqlserver.Insert(new TestGuidId { xxx = "111" }).ExecuteAffrows();
g.sqlserver.Insert(new TestGuidId { xxx = "222" }).ExecuteAffrows();
var gkkdk5 = g.sqlserver.Select<TestGuidId>().Where(a => true).ToList();
using (var testguididdb = g.sqlite.CreateDbContext())
{
var gkkdk22 = testguididdb.Set<TestGuidId>().Select.Where(a => true).ToList();
}
var testlistinsert = new List<AuthorTest>();
g.sqlite.Insert(testlistinsert).ExecuteAffrows();