我将尝试解释我想获得什么:
我正在尝试创建一个 Guid 值作为我的数据库条目的属性。
我已经检查了其他问题和答案来解决我的问题,这是我到目前为止得到的模型:
public class MyModel
{
private Guid myGuid = Guid.NewGuid();
public Guid MyGuid
{
get { return myGuid; }
set { myGuid = value; }
}
}
但问题不在此代码中。因为通过这种方式,Guid 值是自动生成的,我可以在我的视图中验证 Guid。
但是每次我在我的数据库中编辑一个条目时,Guid 都会自我刷新和改变。这就是为什么我称它为“动态”Guid。
我猜是因为MyGuid属性每次都会调用数据模型的私有部分(= Guid.NewGuid();)。
那么如何创建一个随机的 Guid,然后将其设置为 MyGuid 的值呢?
编辑-1
我在我的模型中创建了一个方法,以便创建更精确的 Guid 生成。现在我的模型看起来像这样:
public class MyModel
{
public string myGuid = Convert.ToString(new Guid());
public string MyMethod(string myValue)
{
var empty = Convert.ToString(new Guid());
if (myValue == null || myValue == empty)
{
var newGuid = Guid.NewGuid();
string stringGuid = Convert.ToString(newGuid);
return stringGuid;
}
else { return myValue;}
}
public Guid MyGuid
{
get { return myGuid; }
set { myGuid = MyMethod(value); }
}
}
此方法仅在另一个项目的测试期间有效,然后,当我尝试导入此方法时,它崩溃并停止工作。
使用这种方法,当我在我的数据库中创建一个条目时,它应该在每次我的 Guid 编辑器字段为空或 Guid 为零时生成一个 Guid.NewGuid(),不是吗?
那么,为什么这段代码在一个副项目上工作,而在另一个项目上却不工作?
我错过了什么?