...啧
我认为这可以做到,但我现在无法理解。
所以我创建了这个应用程序,运行正常。但由于某种原因(太长时间无法解释抱歉),我需要预测下一个ID来自数据表。
请注意,上一个ID + 1不起作用。我试过这个。
var lastProperty = db.Properties.OrderByDescending(p => p.PropertyID).FirstOrDefault();
int propID;
if (lastProperty == null)
{
propID = 1;
}
else
{
propID = 1 + lastProperty.PropertyID;
}
只要属性不被删除就可以了......
删除一个,当然会搞砸,因为我们可以删除6th Property
,
最后一个将是5th
现在,使用该代码我们将获得6
5(last one) + 1
,并使用Property
{{保存与PropertyID
相关的模型我从那个代码得到的1}},而下一个6
将是7,因为数据库仍然记得6存在并被删除...模型我打算与最后{{1}具有相同的Property
没有它,它会失败......
此外,我无法在保存PropertyID
之后添加此内容,我意识到这似乎是一种解决方案,但事实并非如此。必须预测。
谢谢...请帮忙......
更新
这是我想要完成的用例。
带有Property
Property
Property
属性的 ID
模型。
具有Name
DataType
List
属性的ID
模型。
创建新的ListValue
时,PropertyID
中的用户类型和Property
的预制下拉列表会选择一个值,如果该值为Name
,则会打开其他值包含列表框,文本框和按钮(DataType
)的表单。用户在文本框中键入值,然后点击List
将其添加到add_Button
。
列表框是从add_Button
模型中填充的,而List
会将值从文本框保存到List
的{{1}}属性,正如您所见,我正在尝试通过预测值{...}来手动将add_Button
添加到ListValue
。
然后,在完成通过文本框添加所需的所有元素后,点击List
按钮,然后保存PropertyID
。
希望这很清楚。
答案 0 :(得分:2)
您似乎想知道标识列的当前状态:
SELECT IDENT_CURRENT('Table')
答案 1 :(得分:1)
如果需要知道在提交到Db之前您的主键值是多少,您可以使用uniqueidentifier(GUID)作为Property
的Pk,因此作为{{1}的Fk } 实体。通过这种方式,您可以创建自己的东西,并且它在提交时始终是唯一的。
答案 2 :(得分:0)
您提到实体框架,您是否尝试过调整模型?
可以调整 StoreGeneratedPattern
以允许在存储到数据库时自动更新本地模型。