我已经开始使用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)
但看起来我完全迷失了.这个简单的例子可以帮助我吗?
我无法理解 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,因为在我看来,当主线程结束时,两个线程都结束了。这是处理线程的正确方法吗?
我正在尝试使用验证规则验证 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 的新手,如果这里有任何建议或指导,我将不胜感激。
谢谢。