gpt4 book ai didi

c# - 将 Entity Framework 与 MySQL 数据库一起使用,模型设计器不会选取存储的过程参数

转载 作者:可可西里 更新时间:2023-11-01 06:54:30 25 4
gpt4 key购买 nike

我有最新的 Mysql 连接器,它允许您使用 Visual Studio Entity Framework 设计器。它工作得很好,但我只是添加了一个存储过程。

Server Explorer 使用指定的参数加载它,但后来我将它添加到实体模型,它生成的代码没有任何输入参数。

存储过程

CREATE PROCEDURE `GetViewableMenuNodes`(IN siteId INT, IN parentId INT, IN userName varchar(255))
BEGIN
select m.*
from menunode m
where m.siteid = siteId
and m.showinmenu = 1
and m.parentid = parentId
and m.viewername = userName;
END

这是模型生成的代码

public global::System.Data.Objects.ObjectResult<MenuNode> GetViewableMenuNodes()
{
return base.ExecuteFunction<MenuNode>("GetViewableMenuNodes");
}

最佳答案

如果您发现这对您有帮助,这里是我在 MySQL Connector/.NET Entity Framework 提供程序中使用带有参数的存储过程的方法。我调用 ExecuteStoreQuery()。这使我不必处理模型中带有参数的映射过程的挑战。这符合我们的需要。

    public IList<SearchResultsMember> SearchMembers(int memberID, string countryCode, string regionCode, string cityCode, float distanceKm,
int genderID, int ageMin, int ageMax, int offsetRowIndex, int maxRows)
{


MySqlParameter[] queryParams = new MySqlParameter[] {
new MySqlParameter("memberIDParam", memberID),
new MySqlParameter("countryCodeParam", countryCode),
new MySqlParameter("regionCodeParam", regionCode),
new MySqlParameter("cityCodeParam", cityCode),
new MySqlParameter("distanceKmParam", distanceKm),
new MySqlParameter("genderIDParam", genderID),
new MySqlParameter("ageMinParam", ageMin),
new MySqlParameter("ageMaxParam", ageMax),
new MySqlParameter("offsetRowIndexParam", offsetRowIndex),
new MySqlParameter("maxRowsParam", maxRows)
};

StringBuilder sb = new StringBuilder();
sb.Append("CALL search_members(@memberIDParam, @countryCodeParam, @regionCodeParam, @cityCodeParam, @distanceKmParam, @genderIDParam, @ageMinParam, @ageMaxParam, @offsetRowIndexParam, @maxRowsParam)");

string commandText = sb.ToString();
var results = _context.ExecuteStoreQuery<SearchResultsMember>(commandText, queryParams);

return results.ToList();
}

关于c# - 将 Entity Framework 与 MySQL 数据库一起使用,模型设计器不会选取存储的过程参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1011062/

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