所以,我有一个像这样的道具的模型:
public DateTime Date { get; set; }
我试图为此字段设置默认值,如下所示:
modelBuilder.Entity<Record>().Property(r => r.Date).HasDefaultValueSql("NOW()");
问题是数据库列的默认值未设置。当我使用&#34; NOW()&#34;函数,迁移工作,但正如我所说,列默认不在数据库中设置。当我尝试其他MySql日期时间函数时,我收到此错误:
您的SQL语法出错;查看与您的MariaDB服务器版本对应的手册,以获得在&#39;&#39;附近使用的正确语法。第1行
我在这里缺少什么?
答案 0 :(得分:0)
我认为您必须使用“ getdate()”而不是“ NOW()
答案 1 :(得分:0)
我遇到了完全相同的问题,而我from itertools import combinations
def divisibleSumPairs(n,ar,k):
pairs = []
for com in combinations(ar,2):
if sum(com) % k == 0:
pairs.append(com)
return len(pairs)
nk = input().split()
n = int(nk[0])
k = int(nk[1])
ar = list(map(int, input().rstrip().split()))
print(divisibleSumPairs(n,ar,k))
自己制作了迁移文件,如this tutorial所述。
.Net
我没想到自动生成的代码会出现任何错误! 但是,这不是我的错,也不是.Net错误。
问题实际上来自Pomelo.EntityFrameworkCore.MySql库中的错误。我与开发者here进行了讨论。
正如我所说:
所以您必须删除单引号...
我删除了单引号和问题resolved。
最后的解决方案是:
entity.Property(e => e.ValidFrom)
.HasColumnName("valid_from")
.HasColumnType("datetime")
.HasDefaultValueSql("'current_timestamp()'"); //<-- Line of problem!
无论如何,他们说他们也将很快为MariaDB解决它。