gpt4 book ai didi

c# - 如何仅使用一个 Controller 动态检索表?

转载 作者:太空宇宙 更新时间:2023-11-03 15:26:19 26 4
gpt4 key购买 nike

我使用以下代码作为单个表的 Controller ,以从我的数据库访问该表,并将每一列的值分配给一个变量。但是,我有很多表(在本例中为 Booktrans),我想使用一个 Controller 来访问所有使用表 ID 作为变量的表。之后给不同表的不同列赋值也会和下面的代码不一样。谁能用“动态”编码方式帮助我用动态 Controller 替换特定表的 Controller ?

我正在使用 MVC4。

所有的表都有不同的结构和不同的列名。

public ActionResult Booktrans()
{
String connectionString = "Dsn=SECURE;Uid=internwebuser";
OdbcConnection conn = new OdbcConnection(connectionString);
String sql = "SELECT * FROM booktrans";
OdbcCommand cmd = new OdbcCommand(sql, conn);

var model = new List<Booktrans>();

using (conn)
{
conn.Open();
OdbcDataReader rdr = cmd.ExecuteReader();
//model = new List<Booktrans>();
while (rdr.Read())
{
var book = new Booktrans();
book.ship_last_name = rdr["ship_last_name"].ToString();
book.ship_first_name = rdr["ship_first_name"].ToString();
book.ship_zip = rdr["ship_zip"].ToString();
book.ship_state = rdr["ship_state"].ToString();
book.ship_address = rdr["ship_address"].ToString();
book.ship_city = rdr["ship_city"].ToString();
book.day_phone = rdr["day_phone"].ToString();
book.email_address = rdr["email_address"].ToString();


model.Add(book);
}

}
return View(model);
}

最佳答案

您使用实际的 ORM 怎么样,因为这就是您要在此处进行逆向工程的对象。使用 Entity Framework 之类的东西,您可以创建一个映射到特定表并具有映射到该表中的列的属性的实体类。然后,特别是使用 Entity Framework,您将代表此表中行集合的 DbSet 添加到您的上下文中:

public DbSet<Foo> Foos { get; set; }

这样,您就可以简单地使用 Entity Framework 提供的 API 与该数据进行交互:

// Get specific Foo
var foo = db.Foos.Find(id);

// Get matching Foos
var foos = db.Foos.Where(m => m.Bar == "bar");

// Add a new Foo
db.Foos.Add(new Foo { Bar = "bar" });

等等等等。 NHibernate 等其他 ORMS 的设置和 API 略有不同,但它们的行为基本相同,并且不需要您担心生成 SQL。

关于c# - 如何仅使用一个 Controller 动态检索表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35181966/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com