C# 如何防止SQLite中出现重复记录或如何检查记录是否已存在

C# 如何防止SQLite中出现重复记录或如何检查记录是否已存在,c#,xamarin.forms,C#,Xamarin.forms,我想在名为favoriteList的表中插入一个位置,但如果记录存在,我想避免重复记录 private void添加到\u收藏夹\u已单击(对象发送者,事件参数e) { Fav=新的收藏夹列表(); Fav.Name\u OF_Place=nameplace.Text; Fav.Image\u OF_Place=imgplace.Source.ToString(); Fav.Basic_Info=Basic.Text; Fav.USERID=USERID; Fav.Place_ID=PlaceI

我想在名为
favoriteList
的表中插入一个位置,但如果记录存在,我想避免重复记录

private void添加到\u收藏夹\u已单击(对象发送者,事件参数e)
{
Fav=新的收藏夹列表();
Fav.Name\u OF_Place=nameplace.Text;
Fav.Image\u OF_Place=imgplace.Source.ToString();
Fav.Basic_Info=Basic.Text;
Fav.USERID=USERID;
Fav.Place_ID=PlaceId;
_Crud=用户()上的新Crud_;
var a=_Crud.GetAllListNote(UserId);
//不起作用
bool b=a.包含(Fav);
如果()
{
DisplayAlert(“抱歉”、“项目已存在”、“确定”);
返回;
}
其他的
{
_积垢嵌入细节(Fav);
显示警报(“已添加”、“已添加项目”、“确定”);
}
}

发生这种情况的原因是
包含
检查对象是否相同。由于
a
\u Crud
中的列表,请确保它不包含
Fav

我建议你检查一下身份证。根据您的实施情况,它可以是:

bool hasAlreadyFavourites=a.Any(f=>f.USERID.Equals(Fav.USERID))


如果我能提出一些建议,试着对变量进行命名,这样它们就更有意义了
a
b
甚至
Fav
都不是最好的名称

发生这种情况的原因是
包含
检查对象是否相同。由于
a
\u Crud
中的列表,请确保它不包含
Fav

我建议你检查一下身份证。根据您的实施情况,它可以是:

bool hasAlreadyFavourites=a.Any(f=>f.USERID.Equals(Fav.USERID))


如果我能提出一些建议,试着对变量进行命名,这样它们就更有意义了
a
b
甚至
Fav
都不是最好的名字

您的
Fav
是新的
favoriteList
实例,它不存储在
a
中,以确保您正在比较对象,而您可能更希望与键进行比较。例如:
bool b=a.Any(f=>f.Place\u ID.Equals(Fav.Place\u ID))
您的
Fav
是新的
favoriteList
实例,它不存储在
a
中,以确保您正在比较对象,而您可能更希望与键进行比较。例如:
bool b=a.Any(f=>f.Place\u ID.Equals(Fav.Place\u ID))
我感谢您的建议谢谢!谢谢你的建议,谢谢!