首页 > 解决方案 > 如何分配和传递变量

问题描述

我有以下代码从用户表单中提取数据并写入数据库:

public class Member_Extended : Member
{

    public string Source { get; set; }
    public string Other { get; set; }
}
[WebMethod(EnableSession = true)]

public Dictionary<string, object> CreateMemeber(Member_Extended member) {
    var original = member != null ? MemberExtended_Member.Compile().Invoke(member) : null;
    Dictionary<string, object> data = new Dictionary<string, object>();
    context.Connection.Open();
    int success = 0;
    using (DbTransaction transaction = context.Connection.BeginTransaction()) {
        try {

            original.isPending = true;
            original.ExpiresOn = DateTime.Now.AddDays(14);

            context.AddToMember(original);
            success = context.SaveChanges();

            if (success == 1) {
                transaction.Commit();


                CacheManager.MemberData =original;  // how to pass original into member
                 MemeberExtendedRepository.Insert(member)
            }
            Utils.ServiceSuccessResultHandler(ref data, "Login," + original.ID, 1);
        } catch (Exception ex) {
            transaction.Rollback();
            Utils.ServiceErrorResultHandler(ex, ref data);
        }

    }

    return data;
}

public class MemeberExtendedRepository
{

    public static bool Insert (Member_Extended member)
    {
        var command = new StringBuilder();
        command.AppendFormat(string.Format("UPDATE Table SET [Source]='{0}',[Other]='{1}' WHERE  ID={2} ", member.Source, member.Other, member.ID));
        return ExecuteCommand(command.ToString());
    }
}

正如您在此行看到的那样,ar original = member != null ? MemberExtended_Member.Compile().Invoke(member) : null;我将成员分配给原始成员。因为 original 包含一个“ID”参数值示例 1234。当我调用此方法时,MemeberExtendedRepository.Insert(member)我希望传递来自原始变量的 ID VALUE,目前它返回的 ID 为 0。

当我尝试以下 操作时MemeberExtendedRepository.Insert(original);,它说无法将成员转换为 Member_Extended。

我怎样才能做到这一点?

标签: c#

解决方案


推荐阅读