Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc C MVC链接到Sql,将表名和字段名传递给函数_Asp.net Mvc_Linq To Sql - Fatal编程技术网

Asp.net mvc C MVC链接到Sql,将表名和字段名传递给函数

Asp.net mvc C MVC链接到Sql,将表名和字段名传递给函数,asp.net-mvc,linq-to-sql,Asp.net Mvc,Linq To Sql,我正在编写一个ASP.NET MVC、SQL Server网站,并希望在控制器中编写一个函数,在该函数中,我传递一个表名、一个列名和一个值,以对照传入表中传入的列名进行检查 如果找到该记录,我想返回该记录的主键 如果在表中找不到该值,我想创建它,然后返回该记录的主键 private int FindRecord(string tableName, string FieldToCheck, string LookupValue) { /* 1) How do I set the string

我正在编写一个ASP.NET MVC、SQL Server网站,并希望在控制器中编写一个函数,在该函数中,我传递一个表名、一个列名和一个值,以对照传入表中传入的列名进行检查

如果找到该记录,我想返回该记录的主键

如果在表中找不到该值,我想创建它,然后返回该记录的主键

private int FindRecord(string tableName, string FieldToCheck, string LookupValue)
{
   /* 1) How do I set the string 'tableName' to a table in my context */

   /* How do I set the string FieldToCheck to a field in the 'tableName' */

   /* How do I return the primary key if LookupValue is in 'FieldToCheck' */

   /* How do I add a record and return primary key if it is now */

   return PrimaryKeyOfFoundOrNewRecord;
}

我几乎无法想象这个问题不是重复的,但我找不到任何例子——也许我没有使用合适的术语进行搜索。提前谢谢。

好的,根据对所需内容的评论说明,您可能需要如下内容:

void CreateLocation(string city,string state, string country)
{
   var newLoc = new Location();

   newLoc.City = GetCity(city);

   if (newLoc.City == null)
   {
      newLoc.City = new City() { Name = city });
   }

   //Repeaat this for state and country.

  _context.Locations.Add(newLoc);

  _context.SaveChanges();

}

City GetCity(string city)
{
   var city = from c in _context.Cities
              where c.name.Equals(city)
              select c;

   return city.FirstOrDefault();
}
如果语法有点不正确,请道歉,这里的时间快结束了


很抱歉,其中一些语法可能是实体框架,而不是linq to sql-刚刚注意到您的标记。语法略有不同,但想法是相同的。

不能100%确定您在这里要做什么,但这可能不是最好的设计。这个功能的目的是什么?你很可能是对的,它不是最好的设计。我正在努力保持我的数据库正常。对于我添加的每个位置,我希望将城市、州和国家存储在单独的表中。当用户添加位置时,我想检查country表以查看是否已经添加了该国家。州和城市也是如此。我的想法是编写这个函数,在将位置添加到位置表之前检查这些表。我离基地很远吗?我是一个老程序员,刚刚习惯了MVC和面向对象的东西!谢谢你的快速回复!好的,我明白了。是的,您应该检查并将它们与现有记录关联,但您不应该像这样编写“一个函数来管理所有记录”。非常感谢!我认为这是一个适合我的策略!!