Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Erwin, a modeling consultant and top Solver Foundation user, encountered some problems trying to do two-way data binding using DataTable objects. There are more details on this discussion thread. Ross, a member of the Solver Foundation team, was kind enough to code up a workaround for Erwin's example. In addition to this CS file, you will need to create a new DBML file called SampleDataContext, as I described in a previous post.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Data;
using System.Data.OleDb;
using System.Data.Linq;
using System.Text;
using Microsoft.SolverFoundation.Services;
using System.IO;
namespace OML1
{
class Test
{
static void Main(string[] args)
{
Test t = new Test();
t.Solve();
}
// Holds the OML model
string strModel = @"Model[
Parameters[Sets,I],
Parameters[Reals,p[I]],
Decisions[Reals[0,Infinity],x[I]],
Constraints[
Foreach[{i,I}, x[i]==p[i]]
]
]";
// SFS
SolverContext context;
SampleDataContext data;
// Constructor
public Test()
{
context = SolverContext.GetContext();
data = new SampleDataContext("Data Source=Sql_server_name;Initial Catalog=DataPartitionAllocation20_5;Integrated Security=True");
context.DataSource = data;
}
// Solve the problem
public void Solve()
{
context.LoadModel(FileFormat.OML, new StringReader(strModel));
Parameter p = context.CurrentModel.Parameters.First(q => q.Name == "p");
p.SetBinding(data.P, "value", new string[] { "index" });
Decision x = context.CurrentModel.Decisions.First(d => d.Name == "x");
x.SetBinding(data.X, "value", new string[] { "index" });
Solution solution = context.Solve();
Console.Write("{0}", solution.GetReport());
context.PropagateDecisions();
}
}
}
Comments
- Anonymous
June 02, 2009
PingBack from http://asp-net-hosting.simplynetdev.com/solver-foundation-linq-to-sql-example/