找到个解决方案:
case AppType.DB:
Game.Scene.AddComponent<NetInnerComponent, string>(innerConfig.Address);
Game.Scene.AddComponent<DBComponent>();
Game.Scene.AddComponent<DBProxyComponent>();
break;
配置加个DB:
修改代码,操作DB:
注释之前的DB操作(直接使用DB组件进行操作)。调整为向DB服务器发送操作请求
// // /************ 数据库demo ************/
// //数据库操作对象
// DBProxyComponent dbProxy = Game.Scene.GetComponent<DBProxyComponent>();
// // //保存到数据库
// await dbProxy.Save(player);
// Log.Info("--保存成功---");
// //查询账号是否存在
// Player resultd = await dbProxy.Query<Player>(player.Id);
// Log.Info(MongoHelper.ToJson(resultd));
//
// //根据Account账号查找,可能有多个
// List<ComponentWithId> results = await dbProxy.Query<Player>(_account => _account.Account == player.Account);
// Log.Info(results.Count + "");
// if (results.Count > 0)
// {
// Log.Info(MongoHelper.ToJson(results[0]));
// }
/************ 数据库demo 分布式服务器中************/
//获取DB服务器地址
IPEndPoint dbAddress = StartConfigComponent.Instance.DBConfig.GetComponent<InnerConfig>().IPEndPoint;
Log.Info("获取DB服务器地址 :" + dbAddress.Address + "--" + dbAddress.Port);
Session dbSession = Game.Scene.GetComponent<NetInnerComponent>().Get(dbAddress);
await dbSession.Call(new DBSaveRequest { Component = player});
Log.Info("--保存成功---");
DBQueryResponse dbQueryResponse = (DBQueryResponse)await dbSession.Call(new DBQueryRequest { CollectionName ="Player", Id = player.Id });
Player result = (Player)dbQueryResponse.Component;
Log.Info(MongoHelper.ToJson(result));
//序列化查询json,来着 await dbProxy.Query<Player>(_account => _account.Account == player.Account); 函数中
ExpressionFilterDefinition<Player> filter = new ExpressionFilterDefinition<Player>(_account => _account.Account == player.Account);
IBsonSerializerRegistry serializerRegistry = BsonSerializer.SerializerRegistry;
IBsonSerializer<Player> documentSerializer = serializerRegistry.GetSerializer<Player>();
string json = filter.Render(documentSerializer, serializerRegistry).ToJson();
DBQueryJsonResponse resultsList = (DBQueryJsonResponse)await dbSession.Call(new DBQueryJsonRequest { CollectionName ="Player",Json = json});
List<ComponentWithId> list = resultsList.Components;
Log.Info(list.Count + "---size");
if (list.Count > 0)
{
Log.Info(MongoHelper.ToJson(list[0]));
}
重新编译,发布。能正常保存,查询DB.