Ich bin auf der Suche nach der richtigen Verwendung des offiziellen Cassandra C# -Treibers (2.0) in einem ASP.NET-Web-API-Projekt - verwendet von einer Website mit hohem Datenverkehr.Korrekter Weg zur Verbindung mit Cassandra in einer Web-/API-App
ich eine sehr einfache Beispielanwendung vorgenommen haben, die db mit den folgenden Klassen zu einem cassandra verbindet:
public class CassandraContext
{
private static ISession _session;
public ISession Session { get { return _session; } }
public CassandraContext()
{
var cluster = Cluster.Builder().AddContactPoint("cassandra.some.server").Build();
_session = cluster.Connect("keyspace");
}
}
Und in meinem Controller-Ich verwende es wie folgt aus:
public class TestController : ApiController
{
static CassandraContext db = new CassandraContext();
public IHttpActionResult Get()
{
var result = new List<string>();
var rowSet = db.Session.Execute(@"SELECT * FROM ""Test"";");
foreach (var row in rowSet)
result.Add(row.GetValue<string>("data"));
return Ok<List<string>>(result);
}
}
Alle Beispiele, Informationen werden sehr hilfreich sein.
Danke.
Dieser Code sieht so aus, als würde er ** Cluster.Bulder() ** und ** cluster.Connect() ** bei jedem Zugriff auf das ProductsDAO aufrufen - ist das in Ordnung? – Martin
Ich hatte es so, nur um es kurz zu halten. Innerhalb des CassandraDAO können Sie einen geschützten Getter für 'session' haben und ihn nur dann' connect' aufrufen, wenn die Sitzung null ist. Ich werde eine Bearbeitung vornehmen, um dies zu reflektieren. – Aaron