小编Tom*_*ner的帖子

违反主要密钥实体框架代码

我已经开始使用C#了,我想创建自己的数据库.

我有两个型号

public class AModel 
{
    public Guid ID { get; private set; }
    public string Name { get; set; }
    public int Count { get; set; }
    public AModel()
    {
        this.ID = Guid.NewGuid();
    }
}

public class BModel 
{
    public Guid ID { get; private set; }
    public string Name { get; set; }
    public AModel Model { get; set; }
    public BModel()
    {
        this.ID = Guid.NewGuid();
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试将BModel保存到DB时,我收到此错误:

违反PRIMARY KEY约束'PK_dbo.AModels'.无法在对象'dbo.AModels'中插入重复键.重复键值为(48ee1711-8da4-46c1-a714-19e985211fed).\ r \n语句已终止.

我以为它会被解决

modelBuilder.Entity<BModel>().HasRequired(t => t.Model).WithMany();
Run Code Online (Sandbox Code Playgroud)

但看起来我完全迷失了.这个简单的例子可以帮助我吗?

c# entity-framework ef-fluent-api

7
推荐指数
1
解决办法
1万
查看次数

如何在 Python 中正确关闭线程

我无法理解 Python 中的线程。我有这个程序:

import _thread, time

def print_loop():
    num = 0
    while 1:
        num = num + 1
        print(num)
        time.sleep(1)

_thread.start_new_thread(print_loop, ())

time.sleep(10)
Run Code Online (Sandbox Code Playgroud)

我的问题是我是否需要关闭线程 print_loop,因为在我看来,当主线程结束时,两个线程都结束了。这是处理线程的正确方法吗?

python multithreading

3
推荐指数
1
解决办法
3626
查看次数

C# WPF,日期选择器验证

我正在尝试使用验证规则验证 XAML 中的日期。

<StackPanel Grid.Column="0" Grid.Row="1" Orientation="Horizontal">
    <DatePicker Height="25"  x:Name="DatePickerDate">
        <DatePicker.SelectedDate>
            <Binding Path="ViewModel.Date" NotifyOnValidationError="True">
                <Binding.ValidationRules>
                    <validationRules:DatePickerValidationRule/>
                </Binding.ValidationRules>
            </Binding>
        </DatePicker.SelectedDate>
    </DatePicker>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

和验证规则

public class DatePickerValidationRule : ValidationRule
{
    public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
    {
        var date = (DateTime) value;

        return date.Date.CompareTo(DateTime.Now) < 0
            ? new ValidationResult(false, "the date can not be before today")
            : new ValidationResult(true, null);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我将断点放入验证规则时,即使我更改日期,它也永远不会去那里。

由于我是 WPF 的新手,如果这里有任何建议或指导,我将不胜感激。

谢谢。

c# validation wpf

2
推荐指数
1
解决办法
1万
查看次数